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

2018-01-16  本文已影响0人  我太难了_9527

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

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 上

上一篇 下一篇

猜你喜欢

热点阅读