iOS:如何正确的禁止系统手指侧滑返回上一页的的姿势

之前开发过程中,A (viewController)页面 是首页,A页面嵌入了B(viewController)子页面,从子视图B  push  到 C页面,再添加了pop回来的按钮。点击pop回来的按钮页面都是没问题的,但是,手指侧滑返回上一页的时候A页面却直接黑屏,这极大的影响了用户体验,让我头疼。

问题原因,我觉得是我点击A 页面的子视图,导致无法识别要返回的视图。解决这个问题,要么指定返回的页面,要么禁用C页的系统侧滑返回的功能。在网上我找到了很多方法,类似以下的都无效:

// 关闭返回手势

//    if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {

//        self.navigationController.interactivePopGestureRecognizer.enabled = NO;

//    }

如果无效的话,建议使用另一位大神网友的这种方法,在此感谢网友的智慧和分享:

以下是网友的原文:

在药禁用的页面加上协议:<UIGestureRecognizerDelegate>

然后:

兄弟,如果你试过了各种方法都还是不行的话,不妨在试试下面的方法。

id traget = self.navigationController.interactivePopGestureRecognizer.delegate;

UIPanGestureRecognizer * pan = [[UIPanGestureRecognizer alloc]initWithTarget:traget action:nil];

[self.view addGestureRecognizer:pan];

直接将代码拷贝到viewDidLoad总就行了

确实解决了我的问题。

希望能帮助到你。

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

推荐阅读更多精彩内容