2012-02-29 135 views
42

我有一个应用程序与导航栏,推到登录屏幕视图控制器,然后推到主菜单。有什么办法可以从主菜单中删除后退按钮,因此用户无法返回到登录屏幕?iOS如何删除后退按钮?

谢谢!

编辑:使用Xcode 4.3并以编程方式完成所有腿工作。

回答

104

你可以这样做:

[self.navigationItem setHidesBackButton:YES]; 

在你的第二个视图控制器(你要隐藏的按钮之一)。

+0

太棒了!谢谢 – jbearden 2012-02-29 13:03:00

+3

可能想重新考虑使用导航堆栈,而是提供一个模态VC - 请参见下文。 – 2012-02-29 13:07:19

+0

为了将来的参考,如果它不适合你,只需将该代码放在viewDidAppear中:它就会开始工作。 – 2015-09-02 12:55:52

6

彼得斯的回答是正确的,但我认为更好的问题是为什么?在类似于您想要登录用户的模式中,不要使用Pressed VC,而是使用Modal VC并使用委托方法来取回在登录过程中获取的用户信息。如果您需要它,我可以发布一个完整的代码示例,但听起来好像您的登录过程有详细的结果。只需使用:的

presentModalViewController 

代替:

pushViewController 

这样的话,你就不必担心导航堆栈和做的事情是不是真的在网上与用户界面指南。

+0

好点。感谢您的反馈! – jbearden 2012-02-29 14:06:29

1

试试这个:

[self.navigationItem setHidesBackButton:YES]; 

或者

[self.navigationItem setHidesBackButton:YES animated:YES]; 
2

在迅速

self.navigationItem.hidesBackButton = true 
0

在Xcode7.3.1尝试,快

self.navigationItem.setHidesBackButton(true, animated: true) 

它只隐藏后退箭头和禁用后退动作,但我仍然可以看到前一个视图控制器的名称。

对于那些还想隐藏以前的视图控制器的名称,请尝试Yoga's answer为我工作。在迅速

self.navigationItem.leftBarButtonItem = UIBarButtonItem(customView: UIView())