解决自定义导航栏导致系统导航栏消失的问题

  • 问题还原
    公司项目中首页需要自定义一个导航栏,我的做法是在首页viewWillAppear中写上self.navigationController.navigationBarHidden = YES,在从首页推到的二级页的viewWillAppear中写上self.navigationController.navigationBarHidden = NO。那么问题来了,第一个问题是在二级页通过右划手势退回上一页的时候系统导航栏立马消失,和页面消失不同步,如图所示:
    解决自定义导航栏导致系统导航栏消失的问题_第1张图片
    1.png

    而正常的效果应该是这样的:
解决自定义导航栏导致系统导航栏消失的问题_第2张图片
4.png

第二个问题是,当右划返回到一半时取消,再从二级页推到下一个页面时,第三个页面的导航栏会消失,进而显示二级页的导航栏。

  • 解决办法
    把首页的self.navigationController.navigationBarHidden = YES方法替换为[self.navigationController setNavigationBarHidden:YES animated:YES],两个问题都得以解决。至于用self.navigationController.navigationBarHidden = YES时为什么会导致这两个问题,还不是很清楚,希望有明白的大神不吝赐教。

你可能感兴趣的:(解决自定义导航栏导致系统导航栏消失的问题)