Доступ к функциям в родительском контроллере - PullRequest
0 голосов
/ 12 апреля 2010

Я создал ViewController в XCode для проекта iPhone, над которым я работаю, но у меня есть вопрос о вложенных ViewControllers и о том, как лучше всего получить доступ к родительским функциям ViewController?

По сути, на данный момент у меня есть SwitchViewController с MenuViewController (вложенный) и GameViewController (вложенный, который отображает OpenGL ES).

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

Каков наилучший способ вызова родительских функций?

Ответы [ 3 ]

1 голос
/ 12 апреля 2010

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

1 голос
/ 12 апреля 2010

Вам нужно создать указатель на родительский элемент контроллеров представления и установить его при вложении представления контроллера представления в другое представление.

0 голосов
/ 14 апреля 2010

Я разработал это и хотел поделиться своими выводами.

В контроллере subview или subview вы можете использовать следующий код в качестве указателя на другие места.

#import "TwoViewAppDelegate.h" // import the header of the class you want to reference


- (IBAction)setRedColor:(id)sender
{
    // Use the class name and create a pointer (in this case mainDelegate)
    TwoViewAppDelegate *mainDelegate = (TwoViewAppDelegate *)[[UIApplication sharedApplication] delegate];
    mainDelegate.textColor = [UIColor redColor];
    [mainDelegate flipToFront];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...