在项目开发过程中,有时需要隐藏系统的导航条,比如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];
}
```
完成!