从多个视图向 UINavigationBar 添加和删除 UIBarButtonItems

Posted

技术标签:

【中文标题】从多个视图向 UINavigationBar 添加和删除 UIBarButtonItems【英文标题】:Adding and Removing UIBarButtonItems to UINavigationBar from Multiple Views 【发布时间】:2011-05-20 21:47:29 【问题描述】:

我目前有一个主窗口设置为 UINavigationController(也是根视图控制器),我有两个视图。第一个视图是登录屏幕,第二个屏幕是表格视图屏幕。我想要发生的是根据显示的屏幕显示不同的 UIBarButtonItems。例如,当显示登录屏幕时,我希望显示导航栏上的左按钮(更具体地说,它是登录前的设置按钮)。用户登录后,我希望左侧按钮说“注销”,右侧是重新加载按钮。我已经尝试以编程方式添加按钮,但它们不会出现。有什么建议吗?

另外,我已经在 IB 中完成了大部分工作,但我觉得以编程方式添加这些按钮可能会更容易。

【问题讨论】:

【参考方案1】:

UIViewController 的所有子类都有一个名为 navigationItem 的属性。虽然它是只读的,但您可以更改其properties。所以在LoginViewController 中,你可以在self.navigationItem.leftBarButtonItem = /* Code to create the bar button */ 中使用TableViewController。如果您需要更多详细信息,请告诉我。

【讨论】:

我明白了,我想我会坚持这种方法。我确实读过这个,但它不适合我。谢谢!

以上是关于从多个视图向 UINavigationBar 添加和删除 UIBarButtonItems的主要内容,如果未能解决你的问题,请参考以下文章

如何向 UINavigationBar 添加后退按钮?

如何完全以编程方式添加 UINavigationBar?

增加 UINavigationBar 的高度并添加在推送时持续存在的自定义视图

如何将子视图添加到 UIViewController 将 UINavigationBar 推到后面

ios - UINavigationBar添加背景图片的几种简单思路

使用 UINavigationBar 和 UIBarButtonItem 自动布局