我有这个问题:我有一个视图控制器(嵌入在导航控制器中),该控制器在执行某个操作后会触发手动segue推送一个新的视图控制器,但是在新的视图控制器中没有导航栏,因为在第一个控制器中实现了如下的viewWillDisappear方法:
- (void)viewWillDisappear:(BOOL)animated {
// Hide the navigation bar just before the view disappear
[[self navigationController] setNavigationBarHidden:YES animated:YES];
}
这是IBAction内部的手动序列的代码:
[self performSegueWithIdentifier:@"tutorialSegue" sender:self];
我尝试过这样
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
[[self navigationController] setNavigationBarHidden:NO animated:NO];
}
但它不起作用,实际上在调试器中,我注意到navigationcontroller等于nil,我只是不知道为什么。
如果要StartViewController隐藏导航栏,并让DestinationViewController显示它,请执行以下操作:向-(void)viewWillAppear:
方法添加相应的代码。
StartViewController:
-(void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[[self navigationController] setNavigationBarHidden:YES animated:YES];
}
DestinationViewController:
-(void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[[self navigationController] setNavigationBarHidden:NO animated:YES];
}
如果您希望两个视图控制器都具有导航栏,只需删除包含以下内容的所有行 setNavigationBarHidden:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句