Вызов метода с нескольких контроллеров - PullRequest
0 голосов
/ 14 марта 2011

Я знаю, что есть простой ответ на этот вопрос, но я уверен, что не смог выполнить его правильно.

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

Мой вопрос: где я могу создать метод и как его вызвать?

Я пробовал делегатов, помещал метод в контроллер приложения и т. Д. Я просто не могу понять это.

1 Ответ

0 голосов
/ 14 марта 2011

RoorViewContoroller или просто корневой контроллер - это то, что вам нужно. Я тоже работаю над игрой, использую игровой движок Cocos2d-iphone. Я покажу вам, как это работает там. Есть один общий класс, реализованный как Singleton, называемый ССDirector. Это корневой контроллер по экземпляру.

//AppDelegate.m (entry point)
//I run first scene from AppDelegate
[[CCDirector sharedDirector] runWithScene: [MainMenu scene]];
....
//MainMenu.m
//I change scene from Menu to Game Level

- (void) runLevel: (int)level withTheme: (int)themeNo
{
...
    Class GameClass;         //I can run different levels
...
    [[CCDirector sharedDirector] replaceScene:[GameClass scene]];
}

Внутри CCDirector освобождает текущий контроллер (MainMenu) и сохраняет только что созданное (сцена GameClass).

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