开篇
在iOS中,默认如果有导航控制器,当push到下一个控制器时,当前界面时可以局部侧滑返回的,这一段范围很少.
既然系统已经给我们了实现好了,侧滑返回,那么我们如何解决,全屏手势侧滑返回呢?
方案
拿到系统的返回手势,操作一波
runtime 打印导航控制器所有私有属性
1 | /// 通过runtime获取对应的手势属性 |
打印结果:
1 | _gestureFlags |
获取target
1 | guard let anyObject = interactivePopGestureRecognizer!.value(forKey: "_targets") as? [AnyObject] else { |
打印结果:
1 | /// 原来是一个数组,数组中是一个tuple, tuple第一个是一个action,第二个既然是target对象 |
KVC 取出target
1 | let target = object.value(forKeyPath: "target") |
替换手势
1 | //创建自己的手势 将系统的手势去代替自己创建的手势 |
使用FDFullscreenPopGesture
这玩意就补多少了,添加进去,啥都不用干,懒人方案,完美解决。