ios隐藏导航栏的合适时机

设置隐藏导航栏的合适时机在哪里?

错误做法1. 在viewDidLoad中设置
原因:该方法在vc第一次创建时调用,如果该vc在push出一个显示导航条的vc,然后返回原vc,因不走viewDidLoad方法,那么导航条就会一直显示。

错误做法2. 在viewDidAppear中设置
原因:进入此方法时,画面已经显示在屏幕上了,此时按照默认的显示导航条,然后在设置隐藏,用户体验不好。该方法中设置已经太晚了。

正确做法3:在viewWillAppear中设置
原因:该方法是视图装载好,即将显示时(并未出现在屏幕上),而且每次从别的控制器pop返回该vc都会调用viewWillAppear。故此方法中设置最合理。

- (void)viewDidLoad {
    [super viewDidLoad];
    }

- (void)viewWillAppear:(BOOL)animated {
    //隐藏导航栏
    [self.navigationController setNavigationBarHidden:YES animated:animated];
}

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
  }

在viewWillAppear方法和viewWillDisappear方法中写上隐藏导航栏和显示导航栏代码:
(1)、viewWillAppear方法:视图即将呈现时隐藏 self.navigationController.navigationBarHidden = YES;
(2)、viewWillDisappear方法:视图即将消失显示 self.navigationController.navigationBarHidden = NO;


ios隐藏导航栏的合适时机_第1张图片

这样能很好的解决导航栏隐藏的问题了!

你可能感兴趣的:(ios隐藏导航栏的合适时机)