应用场景:比如在app“我的”界面 一般是没有导航栏的(隐藏了nav),但是在“我的”的界面要跳转其他控制器的时候需要显示导航栏,这时候怎么办呢?
我首先做的就是在“我的”控制器的隐藏nav 的viewWillAppear方法
self.navigationController.navigationBar.hidden = YES;
在目标控制器里显示nav的viewWillAppear方法
self.navigationController.navigationBar.hidden = NO;
但是问题来了,这时候返回到“我的”界面的时候你会发现顶部的导航栏不见了,会显示一部分window的背景色,非常难看。这时候怎么解决的呢?我直接贴代码:
第一步:在”我的“界面
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:YES animated:animated];
第二步:在目标控制器
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:NO];
}
这时候你运行过后发现目标控制器的导航栏会跟着他的控制器一起滑动,问题解决。









网友评论