设置:
在您从 SignUpViewController
注册后你去PostsViewController
.它们通过 show
连接segue,所以在导航栏里面,< SignUp
按钮是自动创建的。
问题:
我想隐藏此按钮,因为您永远不必返回到 SignUpViewController
除非你已经注销。我认为从导航堆栈中删除 View Controller 就可以完成这项工作。我做了以下事情:
NSArray *navVCs = [self.navigationController viewControllers];
for (UIViewController *vc in navVCs) {
if ([vc isKindOfClass:[SignUpViewController class]]) {
[vc removeFromParentViewController];
}
}
我检查了 SignUpViewController
已从导航堆栈中正确移除,但仍未移除后退按钮。
我也试过设置
self.navigationItem.hidesBackButton = YES;
self.navigationController.navigationBar.userInteractionEnabled = NO;
self.navigationItem.backBarButtonItem = nil;
self.navigationItem.leftBarButtonItem = nil;
而且他们都没有删除 < SignUp
导航栏中的按钮 PostsViewController
.
解决方案:
我在 StackOverflow 上到处查看,很惊讶我找不到答案。预先感谢您的帮助!
最佳答案
我建议不要禁用后退按钮,而是查看 View Controller 的设计顺序。
而不是像这样的过渡:
NavController -> SignUp -> Posts
尝试这样的事情
Signup || NavController > Posts
Signup View 不再通过 segue 连接到导航 Controller 。
您可以在应用程序启动时检测是否需要注册屏幕以及它是否以模态方式(或您希望的方式)出现。当用户完成注册后,您可以实例化嵌入在导航 Controller 中的 Posts Controller ,而不是继续访问它。这样就没有以前的注册 View 可以返回,也没有后退按钮。
关于ios - 禁用从导航 Controller 返回到上一个 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32681488/