-1

我有一个名为 GameViewController 的视图。我没有设置它,但它似乎是一个带有嵌入式 EAGL 视图的 UIKit 视图。

我为 GameViewController 上的点击和滑动设置了手势识别器。它们工作得很好,除了我设置为点击选择器(GameViewController 中的一个函数)的方法在 touchesEnded 上调用,而不是 touchesBegan。

获得 touchesBegan 函数的唯一方法是子类化。

因此,我将 UITapGestureRecognizer 子类化,创建了一个 touchesBegan 函数,并且在着陆时调用其中的 NSLogs。但是,我不能从 UITapGestureRecognizer 子类调用 GameViewController 中的任何函数。(找不到类方法+METHODIWANTTOCALL)。

我意识到我需要来回“参考”,但它们应该是什么?或者这完全是错误的方法?我委托吗?(我是新手)从这个 UITapGesture 子类调用 GameViewController 中的方法的最佳方法是什么?

4

1 回答 1

1

看起来您的 GameViewController 是一个单例类(应用程序中只有一个此类的实例)。您可以在 GameViewController 中有一个返回单例实例的类方法。然后您可以定期使用该方法:

在识别器中: GameViewController* myController = [GameViewController getInstance]; [myController handleTouchBegin];

或者,如果它不需要知道任何内部状态,您可以将 handleTouchBegin 定义为类方法:

[GameViewController handleTouchBegin];

于 2012-05-24T00:50:14.373 回答