从视图类中调用另一个视图

时间:2009-11-16 03:45:39

标签: cocoa-touch uiview uiviewcontroller

由于时间已晚,我可能会更多地利用这一点。我很迷惑。我有一个从viewcontroller类调用的多个视图。通常使用uibutton对象调用它们。说我有两个观点。主要和儿童的观点。这是我在主视图可见时如何称呼孩子。

[self presentModalViewController:childViewController animated:YES];

现在因为我想使用触摸事件来调用子视图我相信我被迫从主视图的类中启动事件。

那么我如何在主视图类中调用子视图,就像我在视图控制器类中一样。

感谢您的帮助!!

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您会想知道是否需要在主视图中处理触摸,而不是在主视图控制器中。如果这是正确的,答案是否定的,你没必要。

事件在Cocoa中的作用方式是它们通过称为响应链的一系列对象传播。链中的最后/最低对象有机会首先响应事件。在这种情况下,该对象是您的“主视图”。如果对象对事件做出响应,则事件将转到链中的下一个对象,即对象的下一个响应者。这会向上推进直到某个对象响应该事件。

您不必担心这一点的原因是 UIView的下一个响应者是其视图控制器。这意味着如果你处理视图中的事件,它会传播到视图的控制器(如果你不在那里处理它,它会继续响应者链)。因此,如果您在视图控制器中实现-touchesBegan:withEvent:-touchesMoved:withEvent和其他基于事件的方法,而在视图,则为会没事的。

有关Cocoa中事件处理的进一步阅读,请参阅this section of the iPhone Application Programming Guide