在iOS7之后,苹果推出了手势滑动返回功能,也就是从屏幕左侧向右滑动可返回上一个界面。大大提高了APP在大屏手机和iPad上的操作体验,场景切换更加流畅。
常见的问题有:
1.右滑手势失效
2.右滑手势与其他手势冲突
3.右滑手势导致应用 Crash
4.右滑手势的开启与关闭
了解一下 navigationItem 的几个属性
hidesBackButton - 是否隐藏原生返回按钮,当前控制器设置,当前控制器有效
backBarButtonItem - 当前控制器设置,下一级控制器生效
leftBarButtonItem - 当前控制器设置,当前控制器生效
leftBarButtonItems - 当前控制器设置,当前控制器生效
leftItemsSupplementBackButton - 在leftBarButtonItem设置之后,再设置该属性可以控制backBarButtonItem的被覆盖状态
系统原生的右滑返回是OK的,但如果设置了 hidesBackButton 、 backBarButtonItem 、 leftBarButtonItem 、 leftBarButtonItems 几个属性,原生的右滑返回手势就会失效。
关于解决方式网上给了很多,但涉及到具体项目觉得使用拦截手势代理回调的方式最为合理。
其一,可以很便捷地解决右滑失效、手势冲突、右滑 Crash 等问题
其二,返回按钮你可以随意自定义
其三,在混合式开发中,可以在拦截的代理回调中给 web 跳转也增加逐级返回体验
关键代码如下 ,详见 Demo
self.navigationC