Понимание контроллеров представления - PullRequest
0 голосов
/ 09 марта 2011

У меня есть приложение TabBar с 4 вкладками.Все четыре вкладки имеют навигационные контроллеры.Во вкладке настроек у меня есть таблица с ячейкой для «Обратная связь».При нажатии на ячейку выдвигается контроллер FeedBackView, который содержит форму обратной связи с несколькими полями.Это текстовое поле для категории.При касании текстового поля контроллер модального представления (FeedBackModalView) представляется с помощью средства выбора.В методе viewDidLoad контроллера FeedBackModalView я набрал NSLog(@"%@", self.parentViewController). В консоли он показывает parentViewController в качестве контроллера TabBar.Это почему?Разве он не должен показывать контроллер FeedBackView как parentView, поскольку я представляю модальное представление в этом контроллере?

1 Ответ

1 голос
/ 09 марта 2011

Использование presentModalViewController с UITabBarController имеет некоторые проблемы, и я считаю, что внутреннее поведение метода постоянно менялось в последних версиях SDK.Суть в том, что вы должны использовать корневой контроллер представления для модального представления контроллера представления.Если вы используете интерфейс панели вкладок, он становится объектом UITabBarController.

В старой версии SDK, когда я представлял модальное представление в контроллере представления внутри контроллера панели вкладок, модальное представление не отображалось в полноэкранном режиме, что не было ожидаемым или документированным поведением.Теперь модальное представление, кажется, появляется в полноэкранном режиме где угодно, и я не удивлюсь, если метод [self presentModalViewController:animated:] внутренне проверяет self и если у него есть свойство не-nil parentViewController, отправьте сообщение в родительский контроллер представления (что объяснит ваше наблюдение).

Моя память расплывчата, и, возможно, кто-то должен исправить меня.Тем не менее, я все еще верю, что это простая вещь для понимания (а также, возможно, на практике) presentModal... работает только с контроллером корневого представления.

...