iOS 关于解决自定义导航栏返回按钮导致侧滑返回失效的问题

其实只需在导航栏控制器中加入下面这句代码就OK了

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

以上只是还原系统的边缘侧滑效果,如果要实现整个屏幕都能侧滑返回则需要我们自己来写下方法:

setp1:需要获取系统自带滑动手势的target对象

id target = self.navigationController.interactivePopGestureRecognizer.delegate;

setp2:创建全屏滑动手势~调用系统自带滑动手势的target的action方法

UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:target action:@selector(handleNavigationTransition:)];

step3:设置手势代理~拦截手势触发

pan.delegate = self;

step4:别忘了~给导航控制器的view添加全屏滑动手势

[self.view addGestureRecognizer:pan];

step5:将系统自带的滑动手势禁用

self.navigationController.interactivePopGestureRecognizer.enabled = NO;

steo6:还记得刚刚设置的代理吗?下面方法什么时候调用?在每次触发手势之前都会询问下代理,是否触发。

这个方法就是拦截手势触发的方法.

- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer{

return NO;则不需要触发滑动手势

return YES;则需要触发滑动手势

}

OK 基本就是这个样子了

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

推荐阅读更多精彩内容