利用手势全屏返回最终方案

上一篇分析了为什么自定义返回按钮后,系统默认的边缘手势返回会失效,以及解决的一些办法,但是,这个手势只是在边缘有效,无法达到全屏有效,最理想的是全屏手势有效,经典的五步:


1.自定义滑动手势识别器,让系统的私有类对象去调用系统提供的返回切换页面功能

UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self.interactivePopGestureRecognizer.delegate action:@selector(handleNavigationTransition:)];

2.加到导航控制器当前的栈顶视图上,可以理解为手势识别器类似于一个膜贴到view上

[self.view addGestureRecognizer:pan];

3.设置pan手势识别器的代理为当前对象,用于实现代理方法,控制非控制器下才可以响应滑动返回

pan.delegate = self;

4.关闭边缘手势识别器

self.interactivePopGestureRecognizer.enabled = NO;

5.实现代理方法

#pragma mark -UIGestureRecognizerDelegate

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch

{

return self.childViewControllers.count > 1;

}

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

推荐阅读更多精彩内容