这个问题来自以下内容:
UITouch - Event not responding
我做了更多的研究,我知道问题是什么,但我不知道如何解决它,或者即使它可以解决。我可能不得不采取新的方法。
我有一个RootViewController,我从这里使用以下代码加载第二个ViewController:
[self presentModalViewController:newWorkoutViewController animated:YES];
然后我在NewWorkoutViewController中有以下代码:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
NSLog(@"New Workout Screen tapped");
}
这个方法没有被采取行动,我认为这是因为它是一个模态视图。无论如何都要在模态视图中检测屏幕上的点击。
由于 斯蒂芬
答案 0 :(得分:2)
在视图控制器上定义相关方法,而不是在视图上定义。
答案 1 :(得分:1)
您的假设不正确。以模态方式显示视图控制器与它无关。触摸在模态视图中的工作方式与在任何其他视图中的工作方式相同。您很可能在视图中未启用用户交互。你是如何创建辅助视图控制器的?
答案 2 :(得分:1)
如果视图中没有用于接收事件的控件,则仅将事件发送到ViewController。例如,如果视图中有一个按钮,并且触摸该按钮,该按钮将获取触摸事件,而不是ViewController。
操作系统使用pointInside:withEvent:方法确定发送事件的位置,然后调用hitTest:withEvent:可以在视图中覆盖这些事件,并查看获取事件的对象。
此外,hitTest会忽略任何隐藏的,禁用用户交互或alpha级别小于0.1的视图:withEvent: