在做导航栏功能的时候,偶尔会放一些控件,功能稍微多点就需要隐藏掉导航,进行自定义。如果隐藏的方法不对,右滑返回就失效了。还有就是如果我们给导航的左按钮(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应用中导航栏的隐藏与自定义方法,包括如何避免隐藏导航栏时影响右滑返回功能,提供了两种实用的解决方案,并讨论了在不同场景下选择合适方案的策略。
2291

被折叠的 条评论
为什么被折叠?



