请支持原创, 如需转载, 请注明出处@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 .