UINavigation 后退栏按钮
Posted
技术标签:
【中文标题】UINavigation 后退栏按钮【英文标题】:UINavigation back bar button 【发布时间】:2013-10-31 03:29:48 【问题描述】:我有一个UITableViewController
作为root view controller
的UINavigationController
。
应用启动时,导航栏上没有返回栏按钮。但是,当我单击其中一个表格视图单元格,然后单击返回时,原始UITableViewController
的顶部会出现一个返回栏按钮。我不想要这个。我怎样才能摆脱它?
【问题讨论】:
由于返回按钮是由 UINavigationController 管理的,所以肯定有什么可以返回的。我很好奇当你点击返回按钮时会发生什么?您必须将其他内容推送到导航堆栈上。 【参考方案1】:在您不希望显示后退按钮的任何视图控制器上,您可以将其添加到viewDidLoad
方法中:
[self.navigationItem setHidesBackButton:YES animated:NO];
或者,如果您希望更改动画,您可以在viewWillAppear:(BOOL)animated:
中添加此调用:
[self.navigationItem setHidesBackButton:YES animated:animated];
【讨论】:
【参考方案2】:当您的应用程序打开时,UITableViewController
不会显示Back
按钮,因为没有什么可以返回。这就是初始视图控制器。
至于第二个UIViewController
,它推到前一个UITableViewController
的顶部 - 如果你不想要Back
按钮 - 使用Modal
转移而不是Push
转账。
Apple 的Navigation Controller
就是这样工作的。它像堆栈一样工作。一个UIViewController
被推送到当前的。
但是,如果您仍然希望在 Modal
上添加一个 Navigation Bar
,请继续 UIViewController
,您可以手动将其添加到 Interface Builder
中:
然后您可以将UIBarButton
添加到Navigation Bar
。
但是如果你仍然坚持简单地隐藏Back
按钮,那么使用这个方法:
把它放在你的UIViewController
类的实现的viewDidLoad
方法中:
[self.viewController setHidesBackButton:YES animated:NO];
【讨论】:
好吧,我明白了。我尝试了模态转移,但导航栏完全消失了,我也不想要。如果可能的话,我只想要没有新的后退按钮的原始导航栏(右侧有一个添加按钮)。 仅供参考 - 如果你想从这个UIViewController
到 segue
这将是一个错误的方法,因为它是一个 Modal
segue。
在 IB 中更改该设置只会更改 IB 为您呈现它的方式,它实际上不会添加导航栏 - 当且仅当您在导航控制器中并且没有隐藏时才会出现酒吧。
...这就是为什么你应该向下滚动到我的答案的底部。以上是关于UINavigation 后退栏按钮的主要内容,如果未能解决你的问题,请参考以下文章
在 iOS 7 中为 uinavigation 栏设置色调颜色而不中断栏按钮项目 [重复]