我有一个带导航栏的应用程序,它会推送到登录屏幕视图控制器,然后推送到主菜单。有什么办法可以删除主菜单上的后退按钮,这样用户就无法返回登录界面了?
谢谢!
编辑:使用Xcode 4.3并以编程方式完成所有腿部工作。
答案 0 :(得分:117)
你可以这样做:
[self.navigationItem setHidesBackButton:YES];
在第二个视图控制器中(您要隐藏按钮的那个)。
答案 1 :(得分:9)
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