我不想让导航控制器在整个项目中显示其导航栏。
<小时/> 我只希望使用动作(可以通过任何类型的事件触发,即拖动手势,不需要按下按钮)来在这些视图控制器之间切换。但是我发现一旦进入“注册视图控制器”,我就无法返回登录视图控制器,因为没有“BACK”导航栏。
<小时/> 非常感谢,任何建议都很棒。
答案 0 :(得分:1)
要在编程方面向后导航控制器的导航堆栈,请调用此方法:
[self popViewControllerAnimated:YES];
您拨打电话的时间和地点取决于您希望应用的流动方式。实际上,当按下导航栏的后退按钮时,默认导航控制器会自动调用它。但是如果您隐藏导航栏并仍然需要弹回,则可以调用此方法弹出。
至于推进,只需在故事板上创建Push segue,为其命名,然后在代码中调用此方法:
[self performSegueWithIdentifier:@"segue_YOUR_SEGUE_ID" sender:self];
关于你的应用程序的问题,最有意义的是登录视图本身就是一个视图。它应包含新用户的注册视图的模态segue以及主视图控制器的模态segue(可能需要或可能不需要嵌入到导航控制器中)。
执行模态segue与push segue完全相同(如果你正在使用故事板。连接segue,选择模态segue,然后在需要segue时调用代码中的performSegueWithIdentifier:
方法发生。
解除模态视图略有不同,但仍然非常简单。它是这样的:
[self dismissViewControllerAnimated:YES completion:nil];
答案 1 :(得分:0)
对'if'语句进行相当检查......
if (self.navigationController.navigationBarHidden == NO) {
//YOUR ACTION
}
希望有所帮助!