在另一个UIViewController存在时阻止滑动手势

时间:2014-12-18 21:45:51

标签: ios iphone uiviewcontroller uiswipegesturerecognizer

我的应用程序具有用户在编辑地理要素时输入的模式。在此编辑模式下,我提供了一个视图控制器,其中嵌入了一个从视图控制器框架插入的嵌入式视图。此视图控制器的背景具有0.5的alpha值,因此底层视图在内部表视图外部仍然是部分可见的,但顶部的半透明视图控制器显示为灰色。底层视图控制器上有一个按钮,用于在不处于编辑模式时将视图向右滑动。

当编辑视图控制器处于活动状态时,将禁用此按钮以激活滑块,这是所需的行为。但是,用户也可以向右滑动视图,从而实现与按钮相同的功能。我想在编辑视图控制器出现时禁用此滑动功能。

所以我猜我的问题是:当某个视图控制器存在时,如何禁用滑动手势?

1 个答案:

答案 0 :(得分:1)

您可以使用gestureRecognizerShouldBegin:委托方法。如果检测到的手势是特定的滑动手势(即theGesture)并且存在某个视图控制器(即theView),则告诉手势不要开始,例如:

- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer {

    if (gestureRecognizer == theGesture && theView.window != nil) {
        return NO;
    } else {
        return YES;
    }
}