导航栏右滑返回失效问题

来源:互联网 发布:剑三成男25号脸数据 编辑:程序博客网 时间:2024/04/27 04:20

1.很多时候我们都会自定义系统的返回按钮,这样就可能导致右滑返回失效的问题,解决方式就是:让当前控制器成为导航栏右滑返回手势UIScreenEdgePanGestureRecognizer的代理

self.navigationController.interactivePopGestureRecognizer.delegate =self;

2.有的时候我们在系统右滑返回的时候要处理一些事情,譬如以下场景:当前控制器上正在进行编辑操作,当用户右滑返回的时候我们希望弹框提示用户是否要放弃编辑,这个时候我们也要拿到这个代理.第一步:在viewdidload的时候,id originalDelegate

=self.navigationController.interactivePopGestureRecognizer.delegate,你会发现它的原始代理就是UINavigationController本身;第二步:在viewwillappear的时候,让当前控制器成为导航栏右滑返回手势的代理

self.navigationController.interactivePopGestureRecognizer.delegate =self;第三步:实现

UIGestureRecognizerDelegate

的代理方法- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer,通过这个方法我们就可以阻断系统的返回去做一些处理。但切记在

viewWillDisappear

的时候将该代理恢复到原状

self.navigationController.interactivePopGestureRecognizer.delegate =originalDelegate;因为UINavigationController属于系统层级,否则进入其他界面右滑返回的时候都会走这个代理方法。



0 0
原创粉丝点击