2015-01-11 18 views
12

Tôi có một mục nút thanh cài đặt (được đặt làm mục nút thanh bên trái). Tôi chỉ muốn hiển thị nó nếu người dùng đang đăng nhập.Cách ẩn mục nút thanh cho một số người dùng nhất định

tôi nghĩ rằng tôi có thể sử dụng sau đây cho người dùng vô danh

navigationItem.leftBarButtonItem = nil 

Nhưng sau đó làm thế nào tôi sẽ cho thấy nó ngay sau khi họ đăng nhập?

Trả lời

28

Bạn có thể lưu một bản sao của leftBarButtonItem trong một tài sản strong và đặt nó trở lại sau khi người dùng đăng nhập.

var leftBarButtonItem : UIBarButtonItem! 

Bên trong viewDidLoad

self.leftBarButtonItem = UIBarButtonItem(title: "test", style:   UIBarButtonItemStyle.Plain, target: nil, action: nil) 

Trong logic

if loggedIn 
{ 
    self.navigationItem.leftBarButtonItem = self.leftBarButtonItem 
} 
else 
{ 
    self.navigationItem.leftBarButtonItem = nil 
} 
3

Cách tốt nhất chỉ là tùy chỉnh thanh mông của bạn với hình ảnh. Đặt barbuttom.image = nil để Ẩn lại để gán hình ảnh hiển thị. Và đừng quên để làm cho barbutton isEnabled là sai.

1

Tôi có nhiều hơn 2 menuitem và loại bỏ/thêm menuitem là chi phí. Đoạn mã này làm việc cho tôi.

func showMenuItem(){ 

    menuItemQuit.customView?.isHidden = false 
    menuItemQuit.plainView.isHidden = false 
} 

func hideMenuItem(){ 

    menuItemQuit.customView?.isHidden = true 
    menuItemQuit.plainView.isHidden = true 
} 
0

nếu bạn muốn ẩn/hiển thị UIBarButtonItem: Đối với Swift 3

Được sử dụng bên dưới mã đơn giản:

Tuyên bố:

var doneButton = UIBarButtonItem() 

Trong viewDidLoad () hoặc ViewWillAppear() hoặc nơi bạn muốn giấu nó: [thanh nút hide]

self.navigationItem.rightBarButtonItem = nil 

nơi bạn muốn hiển thị nút thanh: [sử dụng bất cứ nơi nào trong mã của bạn]

self.navigationItem.rightBarButtonItem = self.doneButton 
     doneButton = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.plain, target: self, action: #selector(YourViewController.dismissPicker)) 
Các vấn đề liên quan