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

2017-12-01  本文已影响269人  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总就行了

确实解决了我的问题。

希望能帮助到你。

上一篇 下一篇

猜你喜欢

热点阅读