ps:记录遇到的一个坑
某个VC push到另一个VC1要求VC1全屏显示(隐藏导航栏)这时候先隐藏
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:YES ];
}
取消隐藏
-(void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
[self.navigationController setNavigationBarHidden:NO ];
}
ps:当前的VC隐藏了导航栏,系统默认会取消当前页的右滑返回手势
使用这个就好了:
self.navigationController.interactivePopGestureRecognizer.delegate = (id) self;
这样基本完成,有一个隐藏的坑当你右滑这个VC滑到一半又左滑(比如反悔了不想回到上一页了)这个时候在去其他的页面push的时候就出bug了,上一级的rightBarButtonItems会跟着一起带过来,
//ps:橙色的页面本来是没有跳转按钮的,经过暗红色的那个滑动到一半放回去在跳过去就出现跳转两个字了..就是说页面2(橙色的)本来是没有那红色的跳转按钮的, 当我在某个没有导航栏的VC里面滑动一半在放回去, 这时候在push到其他页面就出问题了
这个解决办法就是使用以下代码
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:YES animated:animated];
}
-(void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
[self.navigationController setNavigationBarHidden:NO animated:animated];
}
就是加了两个动画手动滑动的时候导航栏是跟着一起的
5F5E5821-6C22-42F9-8561-35E0B05C55F3.png
2B5187CF-FCF7-43D5-BF8E-7CFF31280DC8.png
这是他们的区别,后来想想没有动画的情况滑动一半那个导航栏已经出现了,这时候放回去就会出现未知的bug
感谢这篇文章让我 想到问题原因【链接】导航栏显示和隐藏的坑
http://www.jianshu.com/p/60e2369bbe0e
网友评论