iOS:在视图控制器中禁用手势

3
在我的应用程序中,我有这样的情况: 我有一个主视图控制器,在其中分配了一个“flipwiecontroller”,并以以下方式添加其视图:
self.flipViewController.view.frame = CGRectMake (...);
[self.view addSubview:self.flipViewController.view];

在这个flipViewController中,我添加了一些手势(如拖动手势、滑动手势和点击手势)来控制它。

当我在这个视图中按下一个按钮时,我以如下方式分配另一个视图控制器“paintingviewcontroller”

[self.view addSubview:paintingViewController.view];

在这个第二视图控制器中,我有一些按钮和其他功能,但当我尝试做一个轻扫手势或点击手势时,它会识别我的“翻页视图控制器”的事件。
我不明白,如果我在另一个视图控制器上添加了一个视图控制器,为什么翻页视图控制器的手势仍然有效?
谢谢。

你是怎么添加手势识别器的?它们应该被添加到视图上,而不是窗口。 - Clafou
2个回答

1
也许你正在禁用 paintingViewController 上的 userInteraction,那么它的事件将被发送到它的 superview。 此外,你可以使用 [UIView removeGestureRecognizer:UIGestureRecognizer] 来移除手势。

0
你是如何添加手势识别器的?它们应该被添加到视图上,而不是窗口。也许这就是问题所在。
如果你有类似这样的代码:
[self.view.window addGestureRecognizer:panGestureRecognizer];

你应该将它改为这样:
[self.view addGestureRecognizer:panGestureRecognizer];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接