iOS 当你的左滑手势失效时的解决方案

请支持原创, 如需转载, 请注明出处@TEASON

iOS7开始, 出了左上角的返回按钮之外, 还加入了手势左滑的返回方式 .

它是通过navigationController中的interactivePopGestureRecognizer属性来控制.

而一般情况下 . 左滑失效, 是因为自定义navigationBar的返回键造成 .
在自定义backButton之后, 加入下面这句就行 . 含义很明显 . 把手势的许可打开 .

    self.navigationController.interactivePopGestureRecognizer.enabled = YES ;

当然. 我也碰到过不同的原因 . 但这不是重点 . 有统一的解决方案.
既然他是gesture. 必然是UIGesture的子类 .那么必然有UIGestureRecognizerDelegate代理可以用来监听手势的详细过程 .

interactivePopGestureRecognizer.delegate可以把它设置为当前控制器 , 监听手势触发过程详细的回调 .

    self.navigationController.interactivePopGestureRecognizer.delegate = (id)self;

然而, 我们只需要用到gestureRecognizerShouldBegin这个方法就能判断是否允许开始这个手势了.

- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
{
    return YES ;
}

so that's it .

参考
1、UIScreenEdgePanGestureRecognizer Class Reference
https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIScreenEdgePanGestureRecognizer_class/Reference/Reference.html#//apple_ref/occ/cl/UIScreenEdgePanGestureRecognizer
2、_UINavigationInteractiveTransition.h
https://github.com/nst/iOS-Runtime-Headers/blob/master/Frameworks/UIKit.framework/_UINavigationInteractiveTransition.h
3、自定义返回按钮时,iOS7手势返回遇到的问题
http://www.tuicool.com/articles/FB3IJ3
http://www.tuicool.com/articles/vMfAVv
4、iOS7滑动返回
http://blog.csdn.net/wmqi10/article/details/16850479

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言:ios7开始 苹果增加了页面 右滑返回的效果;具体的是以UINavigationController为容器的...
    iPhone阅读 9,123评论 2 3
  • 1.图片浏览控件MWPhotoBrowser 实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图...
    万忍阅读 5,368评论 0 6
  • 【我是谁】我是一名核电工程师,2012年因为单位体检查出右肾囊肿踏上了学中医的道路,2016年底因为排卵期出血接触...
    水中花_73d4阅读 4,780评论 0 4
  • 6月17日 在公号开始一个多月,头条号开始半个月之后,才开始认识到两者的不同。废话少说,先来总结一下我自己的认识。...
    herplus阅读 10,309评论 0 1
  • 我不想说从第一次见你就喜欢这么俗气的话,尽管这是事实。 我不想说想照顾你与你度过余生这么虚假的话,尽管这是事实。 ...
    吃土少女前进吧阅读 3,576评论 0 0