首先感谢一下FDFullscreenPopGesture这个框架提供的强大全屏手势返回功能的支持,省去了写好多代码,该框架的地址为https://github.com/forkingdog/FDFullscreenPopGesture
本人的手机是高版本的手机,所以开始的时候并没有遇到导航栏错乱的问题,但是很不巧的是测试的有低于ios10以下的手机,那么问题就来了,刚刚开始测试提上的问题说是概率的问题,所以毫无解决问题思路,后面百度了一下,确实有同样的现象,而且是必现的问题,无语呀,一个很简单的方法,在ios10以下的版本隐藏导航栏的页面都禁止手势返回,不隐藏的正常手势。
但是总有的要强制手势返回吧,那么就要对ios10一下进行适配了吧,没错,那就要看看问题产生的现象了,连续push两个隐藏导航栏的页面,然后在第二个隐藏导航栏页面微微左滑一点放开,来回尝试几次,一直返回,就会出现导航栏错乱了,所以个人感觉是取消返回事件和动画之间产生了冲突,就尝试根对此进行适配,也确实成功了,个人感觉是系统bug,因为就算直接用系统api一样也是会错乱
如果有需要查看下面的demo
https://gitlab.com/fllyyou/FDFullscreenPopGestureWithAdaptiOSBeforeTen.git
比较简单的方法,就是直接继承该创建项目导航栏控制器和视图控制器基类,并将基类分别继承BaseNavigationController和BaseViewController,然后在需要隐藏的视图控制器实现以下父类的方法:
-(BOOL)getNaviHidden;
当然了也可以自己在写一遍,所遇到问题的随笔记录,如有不足,请不要见怪