Tôi đã thêm một điều khiển điều hướng để chuyển giữa các chế độ xem trong ứng dụng của mình. Nhưng một số chế độ xem không nên có nút 'Quay lại' (tiêu đề trước đó). Bất kỳ ý tưởng về làm thế nào để ẩn nút quay lại?
Tôi đã thêm một điều khiển điều hướng để chuyển giữa các chế độ xem trong ứng dụng của mình. Nhưng một số chế độ xem không nên có nút 'Quay lại' (tiêu đề trước đó). Bất kỳ ý tưởng về làm thế nào để ẩn nút quay lại?
Câu trả lời:
Mục tiêu-C:
self.navigationItem.hidesBackButton = YES;
Nhanh:
navigationItem.hidesBackButton = true
self.navigationItem.leftBarButtonItem = nil;
. Nếu bạn đã đặt leftbarbuttonitem một cách rõ ràng, bạn có thể sử dụng self.navigationItem.leftBarButtonItem = nil;
. self.navigationItem.hidesBackButton = YES;
sẽ ẩn nút Quay lại Mục
Cách tốt nhất là kết hợp những thứ này, vì vậy nó sẽ ẩn nút quay lại ngay cả khi bạn thiết lập thủ công:
self.navigationItem.leftBarButtonItem=nil;
self.navigationItem.hidesBackButton=YES;
nút ẩn trở lại với mã dưới đây ...
[self.navigationItem setHidesBackButton:YES animated:YES];
hoặc là
[self.navigationItem setHidesBackButton:YES];
Ngoài ra nếu bạn có tùy chỉnh UINavigationBar
thì hãy thử mã dưới đây
self.navigationItem.leftBarButtonItem = nil;
Trong Swift :
Thêm phần này vào bộ điều khiển
override func viewDidLoad() {
super.viewDidLoad()
self.navigationItem.setHidesBackButton(true, animated: false)
}
Sử dụng mã:
self.navigationItem.backBarButtonItem=nil;
Đừng quên rằng bạn cần gọi nó trên đối tượng có bộ điều khiển điều hướng. Chẳng hạn, nếu bạn có bộ điều khiển điều hướng đẩy vào bộ điều khiển thanh tab bằng RootViewContaptor, việc gọi self.navigationItem.hidesBackButton = YES
RootViewContaptor sẽ không làm gì cả. Bạn thực sự sẽ phải gọiself.tabBarController.navigationItem.hidesBackButton = YES
Đừng quên rằng bây giờ chúng ta có động tác trượt để quay lại. Bạn có thể muốn loại bỏ điều này là tốt. Đừng quên bật lại nếu cần.
if ([self.navigationItem respondsToSelector:@selector(hidesBackButton)]) {
self.navigationItem.hidesBackButton = YES;
}
if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
self.navigationController.interactivePopGestureRecognizer.enabled = NO;
}
Thêm mã này trong trình điều khiển xem của bạn
UIView *myView = [[UIView alloc] initWithFrame: CGRectMake(0, 0, 300, 30)];
UIBarButtonItem *btnL = [[UIBarButtonItem alloc]initWithCustomView:myView];
self.navigationItem.leftBarButtonItem = btnL;
Đối với tôi không có cái nào ở trên có vẻ hiệu quả, Nó không có hiệu ứng hình ảnh. Tôi đang sử dụng bảng phân cảnh với chế độ xem được "nhúng" trong bộ điều khiển điều hướng.
Sau đó, ở cấp mã, hãy thêm menu của tôi. Vì một số lý do, "backButton" hiển thị khi gỡ lỗi trực quan hệ thống phân cấp chế độ xem và Biểu tượng menuItem của tôi được hiển thị bên dưới "nút quay lại" vô hình.
Tôi đã thử các cài đặt, như được đề xuất ở các phương thức hook khác nhau và điều đó không có hiệu quả. Sau đó, tôi đã thử một cách tiếp cận tàn bạo hơn và lặp đi lặp lại qua các cuộc phỏng vấn mà cũng không có hiệu quả.
Tôi đã kiểm tra kích thước biểu tượng của mình và có vẻ ổn. Sau khi tham khảo Hướng dẫn về Giao diện Con người, tôi đã xác nhận Biểu tượng của mình là chính xác. (Nhỏ hơn 1 pixel trong trường hợp của tôi 24px 48px 72px).
Phần kỳ lạ nhất sau đó là sửa chữa thực tế ...
Khi thêm Mục BarButton, hãy đặt tiêu đề có ít nhất một ký tự , trong trường hợp của tôi là ký tự khoảng trắng .
Hy vọng điều này sẽ giúp ai đó.
//left menu - the title must have a space
UIBarButtonItem *leftButtonItem = [[UIBarButtonItem alloc] initWithTitle:@" " <--THE FIX
style:UIBarButtonItemStylePlain
target:self
action:@selector(showMenu)];
leftButtonItem.image = [UIImage imageNamed:@"ic_menu"];
[self.navigationItem setLeftBarButtonItem:leftButtonItem];
thử cái này đi
self.navigationController?.navigationItem.hidesBackButton = true
Trong c # hoặc Xamarin.ios, this.NavulationItem.HidesBackButton = true;
navigationItem.leftBarButtonItem = nil
navigationItem.hidesBackButton = true
nếu bạn sử dụng khối mã này bên trong didLoad hoặc loadView hoạt động nhưng không hoạt động hoàn hảo. Nếu bạn nhìn kỹ, bạn có thể thấy nút quay lại đang ẩn khi chế độ xem của bạn tải. Thật kỳ lạ.
Giải pháp hoàn hảo là gì?
Thêm thành phần BarButtonItem từ thành phầnView (Command + Shift + L) vào thanh điều hướng viewControllers đích của bạn.
Chọn BarButtonItem đặt Title = "" từ bảng bên phải