美文网首页
禁止系统侧滑返回手势的两种方法

禁止系统侧滑返回手势的两种方法

作者: 我太难了_9527 | 来源:发表于2018-01-16 15:50 被阅读0次

在开发过程中往往我们不是每个界面都需要系统返回手势, 有的界面需要禁止掉,我经常用到一下两种方法, 仅供参考

1 这种是最常见的

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    // 禁用返回手势
    if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
        self.navigationController.interactivePopGestureRecognizer.enabled = NO;
    }
}

- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    // 开启返回手势
    if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
        self.navigationController.interactivePopGestureRecognizer.enabled = YES;
    }
}

因为我在用这个的时候 出现了一点问题, 那就是, 当前页面的侧滑手势的确被禁掉了, 但是其他界面的都不可以了, 于是就用了第二种方法

2 通过给self.view 添加手势 (直接放在viewDidLoad即可)

//禁止侧滑返回
    id traget = self.navigationController.interactivePopGestureRecognizer.delegate;
    UIPanGestureRecognizer * pan = [[UIPanGestureRecognizer alloc]initWithTarget:traget action:nil];
    [self.view addGestureRecognizer:pan];

这里需要注意的是 无论你当前界面有几个子视图 都需要添加在 self.view 上

相关文章

网友评论

      本文标题:禁止系统侧滑返回手势的两种方法

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