一 代码部分
二 说明
1.打印一下self.interactivePopGestureRecognizer,可以得知三点:
(1)系统自带的侧滑返回手势为UIScreenEdgePanGestureRecognizer类型对象,即屏幕边缘滑动手势
(2)系统侧滑返回手势的target为_UINavigationInteractiveTransition 类型的对象;
(3)系统侧滑返回手势,即target调用的action方法名称为handleNavigationTransition:
所以我们可以创建自定义的全屏滑动手势,获取系统侧滑手势的target对象,并调用系统的侧滑返回手势方法,就能使用全屏滑动返回的功能了.
不过有两点需要注意:禁用系统的侧滑返回手势;在非跟视图控制器中才能使用全屏滑动返回的功能.
2.代码说明
(1)获取系统侧滑返回手势的target对象:id target =self.interactivePopGestureRecognizer.delegate;
(2)创建自己的全屏滑动手势对象,通过系统的target对象来调用系统的侧滑返回手势的方法 UIPanGestureRecognizer*pan = [[UIPanGestureRecognizeralloc]initWithTarget:targetaction:@selector(handleNavigationTransition:)];
(3)同时将自己创建的全屏滑动手势的代理设置为自定义的navigatonController本身 pan.delegate=self;
(4)将创建的手势添加视图对象上 [self.viewaddGestureRecognizer:pan];
(5)然后禁用系统的侧滑返回手势 self.interactivePopGestureRecognizer.enabled=NO;
(6)判断当前视图控制器是否为跟视图控制器,如果是,就禁用全屏滑动返回手势;如果不是根视图控制器,就使用全屏滑动返回手势,如下图
文章参考了网上大神的方法 ,如有不足,还请多多指教