iOS界面跳转时导航栏和tabBar的隐藏与显示功能

一、当A页面要push到B页面,需要将B页面的导航栏隐藏时,我们只需要在A页面中重写以下两个方法:

1
2
3
4
5
6
7
8
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页面写如下代码:

1
2
3
4
5
self.hidesBottomBarWhenPushed=YES;
 BViewController *bvc=[[BViewController alloc]init];
 [self.navigationController pushViewController:bvc animated:YES];
 self.hidesBottomBarWhenPushed=NO;
 //最后一句话,可以保证在back回到A时,tabBar会恢复正常显示
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论