Я как бы царапал свою голову неделю назад, и теперь, имея немного больше опыта с какао, я чувствую, что у меня есть подозрения о том, что может происходить.
Я делаю приложение, управляемое UINavigationController. В AppDelegate я создаю экземпляр этого класса, используя «страницу 1» в качестве контроллера корневого представления.
UINavigationController *aNavigationController = [[UINavigationController alloc]
initWithRootViewController:page1ViewController];
Теперь вот где у меня проблема. На «странице 1» я хотел бы использовать модальный контроллер представления, который скользит по интерфейсу и затем исчезает, когда пользователь сделал редактирование. Я делаю это, используя такой код внутри Page1ViewController:
[self presentModalViewController:myModalViewController animated:YES];
Когда отсутствует контроллер модального вида, я хочу, чтобы значение на «странице 1» изменялось в зависимости от того, что пользователь ввел в контроллер модального вида. Итак, я написал такой код, который находится в Modal View Controller:
[self.parentViewController dismissModalViewControllerAnimated:YES];
[self.parentViewController doSomethingPleaseWithSomeData:someData];
Обновление страницы 1 не происходило, и мне потребовалось много времени, чтобы понять, что сообщение «doSomethingPleaseWithSomeData» отправляется не в Page1ViewController, а в Navigation Controller.
Всегда ли этого следует ожидать при использовании контроллеров навигации? Возможно, я что-то неправильно настроил? Есть ли простой способ получить в View Controller, который я хочу (в данном случае, Page1ViewController).