получить доступ к методу UIView из класса Cocos2D - PullRequest
0 голосов
/ 08 февраля 2012

Я использую Cocos2D, и мне нужно получить доступ к родительскому методу в UIView, который добавлен в UIViewController из другого класса.Моя иерархия выглядит следующим образом:

Ветвь 1: window> viewController.view> glView> joinMapsScene> joinMapsLayer

Ветвь 2: window> viewController.view> foregroundLabelView

Когда мой класс меток раньше был частью Cocos2D, доступ к нему был легким, выполнив что-то вроде этого:

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

Но теперь мне нужновызовите метод в foregroundLabelView из joinMapsLayer.Это может быть не такой уж и большой вопрос, как Cocos2D, но я все еще очень озадачен такими вещами.

1 Ответ

1 голос
/ 08 февраля 2012

Если я хорошо понял, вы хотите получить экземпляр foregroundLabelView из joinMapsLayer.Есть способ, но я не знаю, оптимален ли он.Вы можете в своем AppDelegate.h создать экземпляр foregroundLabelView.

Затем, когда вы инициируете ваш foregroundLabelView, вы назначаете его в AppDelegate foregroundLabelView: в вашем foregroundLabelView.m (вам необходимо импортировать AppDelegate.h) в концеметод init, который вы можете сделать

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

Затем, когда захотите, вы можете получить его, выполнив:

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

и затем получить доступ к методу:

[tmp method];

Я думаю, что это должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...