iOS 导航栏的隐藏以及右滑返回的问题

在做导航栏功能的时候,偶尔会放一些控件,功能稍微多点就需要隐藏掉导航,进行自定义。如果隐藏的方法不对,右滑返回就失效了。还有就是如果我们给导航的左按钮(leftBar)自定义了,那右滑返回也会失效。  想想他还真是挺烦人,索性直接隐藏了算了,自己做起来更好。

这个时候我们用以下方法来隐藏导航栏,根据自己的需求,写在生命周期的不同地方。

self.navigationController.navigationBar.hidden=YES;

之前可能用过  self.navigationController.navigationBarHidden YES用这个方法隐藏导航后滑动返回就失效了。

 

TIPS:其实总这样隐藏来隐藏去的,真的很难受,写起来特别麻烦,有几个思路

1、彻底隐藏(推荐),自定义导航。那每个页面都要写一个导航也很麻烦呀,这时可以写一个基控制器,给基控制器做导航,其他控制器继承即可,自定义的导航很容易被其他View覆盖,这时可以在基控制器的willAppear里面给他提到最前(bringTofont)

[self.view bringSubviewToFront:_navigationView];

基控制器再加个属性,isHideNavigationView,后面按需赋值,这样滑动返回的时候,就不会因为导航的隐藏和显示导致页面上面有黑条。

这种情况还会有附加问题,比如这个导航页那个导航不一样,怎么办???

建议导航做好适配,多提供点接口,供每个页面自定义,改动太大的,直接新写一个,整个过程也是根据自己的业务长时间积累的。

 

2、扩展基控制器,机控制器的willApper显示,DidAppear做隐藏,然后还是扩展属性isHideNavigationView,判断这个值就可以了。就不用在显示和不显示的页面之间总写显示隐藏的代码了(仍然鸡肋)。

你可能感兴趣的:(iOS,隐藏导航,ios,滑动返回,手势返回)