iOS如何删除后退按钮?

时间:2012-02-29 12:46:28

标签: ios navigationcontroller

我有一个带导航栏的应用程序,它会推送到登录屏幕视图控制器,然后推送到主菜单。有什么办法可以删除主菜单上的后退按钮,这样用户就无法返回登录界面了?

谢谢!

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

7 个答案:

答案 0 :(得分:117)

你可以这样做:

[self.navigationItem setHidesBackButton:YES];

在第二个视图控制器中(您要隐藏按钮的那个)。

答案 1 :(得分:9)

彼得斯的回答是正确的,虽然我认为更好的问题是为什么?在您想要登录用户的模式中,而不是使用Pushed VC,提供Modal VC并使用委托方法来获取在Login过程中获得的userinfo。如果您需要,我可以发布一个完整的代码示例,但听起来您已经在登录过程中得到了详细信息。只需使用:

presentModalViewController

而不是:

pushViewController

这样,您就不必担心导航堆栈并做一些与用户界面指南不相符的事情。

答案 2 :(得分:5)

以上代码对我不起作用。正如UINavigationItem setHidesBackButton:YES won't prevent from going back中所述, 我不得不使用:

[self.navigationItem setLeftBarButtonItem:[[UIBarButtonItem alloc] initWithCustomView:[[UIView alloc] init]]];

答案 3 :(得分:4)

在swift中

self.navigationItem.hidesBackButton = true

答案 4 :(得分:1)

试试这个:

[self.navigationItem setHidesBackButton:YES];

或者

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

答案 5 :(得分:1)

在Xcode7.3.1中尝试过,快速

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

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

对于那些想要隐藏上一个视图控制器名称的人,请尝试Yoga's answer为我工作。在快速

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

答案 6 :(得分:0)

在您需要切换显示/隐藏后退按钮的情况下:

navigationItem.hidesBackButton = true/false

并保持向后滑动手势:

extension YourViewController: UIGestureRecognizerDelegate {}

navigationController?.interactivePopGestureRecognizer?.isEnabled = true
navigationController?.interactivePopGestureRecognizer?.delegate = self