我有一个带有导航栏的应用程序,它会推送到一个登录界面视图控制器,然后再推送到主菜单。有没有办法从主菜单中移除返回按钮,使用户无法返回到登录屏幕?
谢谢!
编辑:使用Xcode 4.3,并通过编程完成所有工作。
我有一个带有导航栏的应用程序,它会推送到一个登录界面视图控制器,然后再推送到主菜单。有没有办法从主菜单中移除返回按钮,使用户无法返回到登录屏幕?
谢谢!
编辑:使用Xcode 4.3,并通过编程完成所有工作。
你可以这样做:
[self.navigationItem setHidesBackButton:YES];
在你的第二个视图控制器中(你想隐藏按钮的那个)。
Peter的回答是正确的,尽管我认为更好的问题是为什么?在像您这样的架构中,您想要登录用户,而不是使用Pushed VC,请呈现一个Modal VC并使用委托方法获取通过登录过程获得的用户信息。如果需要,我可以发布完整的代码示例,但听起来您已经在登录过程中解决了细节问题。只需使用:
presentModalViewController
替代方法:
pushViewController
self.navigationItem.hidesBackButton = true
以上代码对我不起作用。如UINavigationItem setHidesBackButton:YES won't prevent from going back中建议的那样,我必须使用:
[self.navigationItem setLeftBarButtonItem:[[UIBarButtonItem alloc] initWithCustomView:[[UIView alloc] init]]];
在Xcode7.3.1中尝试,使用Swift
self.navigationItem.setHidesBackButton(true, animated: true)
self.navigationItem.leftBarButtonItem = UIBarButtonItem(customView: UIView())
试试这个:
[self.navigationItem setHidesBackButton:YES];
或者
[self.navigationItem setHidesBackButton:YES animated:YES];
如果需要切换显示/隐藏返回按钮:
navigationItem.hidesBackButton = true/false
And keep the swipe back gesture:
extension YourViewController: UIGestureRecognizerDelegate {}
和
navigationController?.interactivePopGestureRecognizer?.isEnabled = true
navigationController?.interactivePopGestureRecognizer?.delegate = self