- 问题还原
公司项目中首页需要自定义一个导航栏,我的做法是在首页viewWillAppear
中写上self.navigationController.navigationBarHidden = YES
,在从首页推到的二级页的viewWillAppear
中写上self.navigationController.navigationBarHidden = NO
。那么问题来了,第一个问题是在二级页通过右划手势退回上一页的时候系统导航栏立马消失,和页面消失不同步,如图所示:
而正常的效果应该是这样的:
第二个问题是,当右划返回到一半时取消,再从二级页推到下一个页面时,第三个页面的导航栏会消失,进而显示二级页的导航栏。
- 解决办法
把首页的self.navigationController.navigationBarHidden = YES
方法替换为[self.navigationController setNavigationBarHidden:YES animated:YES]
,两个问题都得以解决。至于用self.navigationController.navigationBarHidden = YES
时为什么会导致这两个问题,还不是很清楚,希望有明白的大神不吝赐教。