一、当A页面要push到B页面,需要将B页面的导航栏隐藏时,我们只需要在A页面中重写以下两个方法:
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.setNavigationBarHidden(true, animated: true)
}
override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
self.navigationController?.setNavigationBarHidden(false, animated: true)
}
注意:,self.navigationController?.navigationBarHidden = false
这样在隐藏了导航栏的控制器和没有隐藏导航栏的控制器之间切换时可能会使导航栏出现闪动的问题。用以上调用设置其隐藏的方法,就可以解决这个问题。
二、当我们从A页面push跳转到B页面需要隐藏tabBar时,在A页面写如下代码:
self.hidesBottomBarWhenPushed=YES;
BViewController *bvc=[[BViewController alloc]init];
[self.navigationController pushViewController:bvc animated:YES];
self.hidesBottomBarWhenPushed=NO;
//最后一句话,可以保证在back回到A时,tabBar会恢复正常显示