2011-10-21 26 views
9

Tôi đã tạo một giao diện người dùng đơn giản trong IB, bao gồm UINavigationBarUIBarButtonItem mà tôi đã kéo và thả ở phía bên tay phải.Làm cách nào để ẩn UIBarButtonItem?

Tôi đang cố gắng đặt nút này thành ẩn một thời gian nhất định nhưng tôi đang gặp một số sự cố.

Cho đến nay tôi đã cố gắng sử dụng:

self.NavigationItem.rightBarButton = nil; 

... mà không làm việc cho tôi. Tôi cũng đã cố gắng tạo ra và IBOutlet và liên kết nó với nút tuy nhiên tôi đang gặp vấn đề với điều này quá. Tôi nghĩ nó khá đơn giản và có lẽ tôi quá phức tạp, nhưng vào thời điểm này tôi khá là bối rối!

Xin vui lòng ai đó có thể giúp tôi?

+0

Đảm bảo rằng ổ cắm NavigationItem của bạn đã được đặt. – logancautrell

Trả lời

25

UINavigationItem không có thuộc tính rightBarButton. Hãy thử rightBarButtonItem thay vì (hoặc [self.navigationItem setRightBarButtonItem:nil animated:NO];):

self.navigationController.navigationItem.rightBarButtonItem = nil; 
// Or 
self.navigationItem.rightBarButtonItem = nil; 
// Or 
[self.navigationItem setRightBarButtonItem:nil animated:NO]; 
1

Chỉ cần thiết lập lại các nút

-(void)setItems:(NSArray *)items animated:(BOOL)animated 

Thông tin thêm ở đây: http://developer.apple.com/iphone/library/documentation/uikit/reference/UIToolbar_Class/Reference/Reference.html#//apple_ref/occ/instm/UIToolbar/setItems%3aanimated%3a

Bạn có thể nhận được các mục hiện hành sử dụng các mục tài sản, sau đó chỉ cần loại bỏ các một trong những bạn không muốn hiển thị và vượt qua trong NSArray mới.

0

Bạn cũng có thể thêm UIButton làm chế độ xem tùy chỉnh của UIBarButtonItem. Sau đó, đặt thuộc tính ẩn trên customView (UIButton)

0

Thay vì xóa mục nút thanh và hủy nút và nó được tách biệt với bảng phân cảnh, bạn chỉ có thể đặt nó để xóa văn bản khi nó bị tắt.

[self.navigationItem.rightBarButtonItem setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor clearColor]} 
                 forState:UIControlStateDisabled]; 

Sau đó, khi đã bao giờ bạn muốn mục nút thanh ẩn, bạn có thể chỉ cần làm:

self.navigationItem.rightBarButton.enabled = NO; 

Đó là què không có tài sản ẩn nhưng điều này cung cấp các kết quả tương tự.

0

Trên thực tế, bạn chỉ có thể tạo ra một tài liệu tham khảo IBOutlet đến UIBarButtonItem mong muốn và khi cần thiết chỉ cần làm như sau:

[self.yourOutletRerence setImage: nil]; 
0

Giải pháp đơn giản nhất: Chỉ cần thay đổi nhận dạng của BarButtonItem để tùy chỉnh.

Các vấn đề liên quan