美文网首页iOS技术点iOS开发技术讨论iOS 开发
iOS 关于解决自定义导航栏返回按钮导致侧滑返回失效的问题

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

作者: _Shj | 来源:发表于2016-07-25 12:47 被阅读764次

其实只需在导航栏控制器中加入下面这句代码就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 基本就是这个样子了

相关文章

网友评论

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

本文链接:https://www.haomeiwen.com/subject/movgjttx.html