在实际的项目中,遇到过个情况就是一个界面push到下个界面,但是下个界面需要隐藏掉导航栏。第二个界面的导航栏隐藏掉过后,iOS7之后的左划pop到上个界面的手势不能正常使用。下面就简单介绍下我的解决这个问题的思路。
- 注:
- V1是控制器1
- V2是V1 push后的控制器2
- V3是V1 push后的控制器3
1.隐藏导航栏
方法1:
隐藏导航栏有很多种做法, [self.navigationController setNavigationBarHidden:YES animated:animated];
在V2的viewWillAppear中实现。 如若要展示导航栏: [self.navigationController setNavigationBarHidden:NO animated:animated];
在V2的viewDidDisappear中实现。
方法2:
我们push后的界面是需要隐藏导航栏,但是导航栏依然是存在的。 我们在V2的viewDidLoad中实现导航栏的代理: self.navigationController.delegate = self;
, 并在该控制器中遵守相应的UINavigationControllerDelegate
协议。 下面就需要实现相关的协议:
#pragma mark - 导航栏的代理
- (void)navigationController:(UINavi