作者:图林根的烤肠,如有纰漏欢迎指出。
文章来源:www.mahong.me
今日编程时发现需要在 NavigationBar 里面添加多个(大于等于3个) Items, 但是查找半天也没有找到 hidden 属性,于是通过万能的 Google 发现一个简要的解决方法,可以通过设置self.navigationItem.setLeftBarButtonItems(items: [UIBarButtonItem]?, animated: Bool) 来实现。
这是描述之前的样子:
要实现把 Two隐藏的效果:
如果在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)
以上就是实现 Navigation Bar Items 隐藏的简要方法,具体还可以参考下 Apple 关于介绍 UINavigationController 的官方文档,对于理解窗口构造有着很大的帮助。