Swift: 多个UINavigationBarItem的隐藏实现

作者:图林根的烤肠,如有纰漏欢迎指出。

文章来源:www.mahong.me


今日编程时发现需要在 NavigationBar 里面添加多个(大于等于3个) Items, 但是查找半天也没有找到 hidden  属性,于是通过万能的 Google 发现一个简要的解决方法,可以通过设置self.navigationItem.setLeftBarButtonItems(items: [UIBarButtonItem]?, animated: Bool) 来实现。

这是描述之前的样子:

Simulator Screen Shot 2016年8月7日 11.26.49

要实现把 Two隐藏的效果:

Simulator Screen Shot 2016年8月7日 11.27.06


如果在NavigationBar的左面有大于一个的Items,则setLeftBarButtonItems 会按照从左往右的顺序一一对应。在这个例子中 要实现把 item:Two 隐藏只需要把 items 里面的 [UIBarButtonItem]  第二项设置为 nil  ,即不填写即可显示。具体实现方法为:

self.navigationItem.setLeftBarButtonItems([leftOne], animated: true)

这里的 leftOne为 “按钮One”,通过@IBOutlet  命名。由于[UIBarButtonItem] 里面只有 leftOne 这一个 按钮,则按钮 Two便不会显示。如果只想显示按钮Tow而隐藏按钮One,则把[UIBarButtonItem] 里只添加按钮Two即可:

self.navigationItem.setLeftBarButtonItems([leftTwo], animated: true) 

另外,如果想把左面的按钮全部隐藏,则通过设置 setRightBarButtonItems 的 item 为nil 即可实现:

self.navigationItem.setLeftBarButtonItems(nil, animated: true)

Simulator Screen Shot 2016年8月7日 11.47.03


以上就是实现 Navigation Bar Items 隐藏的简要方法,具体还可以参考下 Apple 关于介绍 UINavigationController 的官方文档,对于理解窗口构造有着很大的帮助。

 

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部