在项目开发过程中,有时需要隐藏系统的导航条,比如ControllerA跳到ControllerB,ControllerB再跳到ControllerC,其中ControllerB需要隐藏导航条,而A和C又要显示导航条。解决办法如下,既能保持系统原有的体验,又能满足上述需求。
在ControllerB中继承UIGestureRecognizerDelegate协议,在viewDidLoad中设置
(void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:YES animated:YES];
}
-(void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[self.navigationController setNavigationBarHidden:NO animated:YES];
}1然后到ControllerA和ControllerC中实现以下方法:(void)loadView
{
[super loadView];
[self.navigationController setNavigationBarHidden:NO animated:YES];
}- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:NO animated:YES];
}
```
完成!