隐藏导航栏有两种方法
①[self.navigationController setNavigationBarHidden:YES animated:YES];
②self.navigationController.navigationBarHidden = YES;
不难看出,两种方法的区别就在于有没有动画,第一种方法加了animated=YES,就不会出现特殊情况的BUG。
建议大家尽量用第一种方法
我今天就遇到了这个特殊情况:
一共有①②③三个页面,①push②,②push③。
正常左上角返回没有问题。
当加上边缘滑动返回时,③pop②,②pop①。
如果三个页面都显示导航栏也没有问题。
我这里①是隐藏导航栏的,②③是显示导航栏的。这样就会出BUG了。
当从②左侧边缘往右滑动时,如果只是稍微动一下,而没有返回到①
(就是露出一点①页面之后,赶紧往往左滑,确保还停留在②页面)
这时就出问题了,②页面的导航栏没了,③的也没了。
这时只要返回到①页面重新进入就行了。如果说这个BUG影响不大。
但是还是存在一个更严重的BUG,这个着实令我着急啊。
当出现上面这个BUG后,重新从①进入②,没问题。
接着从②进入③,③的title就变成了②的title,③左上角的返回按钮也不管用了,导航栏出现严重的错乱。
(这第一个BUG是因为我把②页面中显示导航栏的代码写在了ViewDidLoad里面了,应该写在ViewWillAppear里面)
【第二个BUG就是真正的难题了,就是这篇博客要说的,找了半天,后来发现加上动画就OK了。】
(上面这段文字是复制的我今天在CSDN问答里面提问的话,下面是我问题的链接,大家可以看看网友对这个问题的回答)
http://ask.csdn.net/questions/248158