如何隐藏某些用户的酒吧button项目

我有一个设置栏button项目(设置为左栏button项目)。 我只想显示它,如果用户login。

我以为我可以使用以下匿名用户

navigationItem.leftBarButtonItem = nil 

但是,一旦他们login,我将如何显示它?

您可以将leftBarButtonItem的副本存储在strong属性中,并在用户login后将其设置回来。

 var leftBarButtonItem : UIBarButtonItem! 

里面的viewDidLoad

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

在逻辑上

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

最好的方法就是自定义你的酒吧buttom与图像。 设置barbuttom.image = nil再次隐藏分配图像显示。 并且不要忘记使barbutton被启用为false。

我有更多的2 menuitems和删除/添加menuitem是一个开销。 此代码片段为我工作。

 func showMenuItem(){ menuItemQuit.customView?.isHidden = false menuItemQuit.plainView.isHidden = false } func hideMenuItem(){ menuItemQuit.customView?.isHidden = true menuItemQuit.plainView.isHidden = true } 

如果你想隐藏/显示UIBarButtonItem:对于Swift 3

使用下面的简单代码:

宣言 :

 var doneButton = UIBarButtonItem() 

在ViewDidLoad()或ViewWillAppear()或你想隐藏它的地方:[hide bar button]

 self.navigationItem.rightBarButtonItem = nil 

你想在哪里显示栏button:[在你的代码中使用任何地方]

 self.navigationItem.rightBarButtonItem = self.doneButton doneButton = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.plain, target: self, action: #selector(YourViewController.dismissPicker))