Проходя через множество уроков и с помощью всех присутствующих здесь, я пытаюсь обернуть голову, используя контроллеры с несколькими представлениями с их собственными файлами xib.
У меня есть один пример, в котором есть: multiViewController и два других: aboutViewController, rulesViewController.
В файлах aboutViewController.m и rulesViewController.m я разместил следующий код:
- (void)viewDidLoad {
NSLog(@"rules View did load"); // (Or About View did load, depending on the .m file)
[super viewDidLoad];
}
Файл mainViewController.m содержит:
-(IBAction) loadRules:(id) sender {
[self clearView];
[self.view insertSubview:rulesViewController.view atIndex:0];
}
-(IBAction) loadAbout:(id) sender {
[self clearView];
[self.view insertSubview:aboutViewController.view atIndex:0];
}
У меня вопрос: почему при запуске приложения срабатывает ViewDidLoad для About и Rules? То есть я получаю сообщения NSLog. Означает ли это, что независимо от отдельных файлов XIB все виды загружаются при запуске?
Мой смысл всего этого: я хочу, чтобы multiViewController был моим главным меню, которое будет иметь отдельные кнопки для отображения других файлов xib при нажатии. Я помещал свой «инициализированный» код в viewDidLoad, но теперь это кажется неправильным, поскольку я не хочу нажимать, пока пользователи не нажмут кнопку, чтобы отобразить это представление.
Примером может служить представление: playGameViewController. В viewDidLoad я проверял, выполнялась ли предыдущая игра, и если да, предлагал пользователю возобновить игру. В приведенном выше случае, когда приложение запускается, оно сразу же запрашивает (потому что viewDidLoad запускается), хотя я сначала хотел отобразить только главное меню.
Любое объяснение очень ценится. Заранее спасибо.
Гео ...