从Cocos2D类访问UIView方法



我正在使用Cocos2D,我需要访问从另一个类添加到UIViewController的UIView中的父方法。我的层次结构是这样的:

分支1:window>viewController.view>glView>joinedMapsScene>joinedMapsLayer

分支2:窗口>viewController.view>foregroundLabelView

当我的标签类曾经是Cocos2D的一部分时,通过这样做访问很容易:

JoinedMapsScene *joinedMapsScene = (JoinedMapsScene*)self.parent; [joinedMapsScene.tetraCounter incTetras:-1];

但现在我需要从joinedMapsLayer调用foregroundLabelView中的方法。这可能不是一个很大的问题,但我仍然对这类事情感到困惑。

如果我理解得很好,那么您希望从joinedMapsLayer中检索foregroundLabelView实例。有一种方法,但我不知道它是否是最优的。您可以在AppDelegate.h中实例化一个foregroundLabelView。

然后,当您初始化您的foregroundLabelView时,您将其分配给AppDelegate foregroundLabeleView:在您的foregroundLabelView.m中(您必须导入AppDelegate.h),在init方法结束时,您可以执行

AppDelegate * delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
delegate.foregroundLabelView = self;

然后,无论何时,你都可以通过以下操作检索:

ForegroundLabelView * tmp = ((AppDelegate *)[[UIApplication sharedApplication] delegate]).foregroundLabelView;

然后访问方法:

[tmp method];

我认为这应该奏效。

最新更新