2

这个问题是以下问题的后续:

UITouch - 事件没有响应

我做了更多的研究,我知道问题是什么,但我不知道如何解决它,或者即使它可以解决。我可能不得不采取新的方法。

我有一个 RootViewController 并使用以下代码从这里加载第二个 ViewController:

[self presentModalViewController:newWorkoutViewController animated:YES];

然后我在 NewWorkoutViewController 中有以下代码:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    NSLog(@"New Workout Screen tapped");
}

这个方法没有被执行,我认为这是因为它是一个模态视图。无论如何在模态视图中检测屏幕上的点击。

谢谢斯蒂芬

4

3 回答 3

2

在您的视图控制器上定义相关方法,而不是在您的视图上。

于 2010-07-13T18:13:50.440 回答
1

你的假设是不正确的。模态显示视图控制器与它无关。触摸在模态视图中的工作方式与在任何其他视图中的工作方式相同。很可能,您的视图上没有启用用户交互。您是如何创建辅助视图控制器的?

于 2010-07-13T18:20:53.367 回答
1

仅当视图中没有控件接收事件时,事件才会发送到 ViewController。例如,如果您的视图中有一个按钮,并且触摸该按钮,则该按钮将获得触摸事件,而不是 ViewController。

操作系统使用 pointInside:withEvent: 方法确定将事件发送到何处,然后调用hitTest:withEvent: 可以在您的视图中覆盖这些并查看哪些对象正在获取事件。

此外,hitTest:withEvent 会忽略任何隐藏、禁用用户交互或 alpha 级别小于 0.1 的视图:

于 2010-07-13T18:21:09.077 回答