最近面试了一个iOS程序媛,看了她的项目,其中一个项目中存在一个很大的问题,左滑返回手势全部失效了。看了一下,她是自定义了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 ;
}