Проблема с «Представлением контроллера модально в контроллере навигации в контроллере панели вкладок» - PullRequest
1 голос
/ 01 декабря 2010

Мое приложение имеет два различных режима. В делегате приложения есть контроллер панели вкладок. Есть две вкладки, каждая из которых использует контроллеры представления в подклассе. Два контроллера представления по существу содержат контроллер nav каждый. У контроллеров nav есть свой корневой контроллер вида, и обычно при смене экранов я просто нажимаю и выскакиваю контроллеры соответствующего контроллера nav. Это имеет (нормальный) эффект, что нижняя панель вкладок всегда видна, все великолепно и звучит.

Это один раз, когда я хотел бы представить экран модально, однако, чтобы пользователь не мог сделать ничего, кроме подтверждения или отмены страницы, используя две кнопки, т.е. я хочу скрыть также нижнюю панель вкладок. Я подумал, что это будет случай представления модального представления, но представление представляется в пределах границ контроллера навигации, поэтому нижняя панель вкладок все еще видна, что вызывает путаницу в навигации по приложению. Я не уверен, как это возможно, что модально представленный вид не скрывает панель вкладок. Большинство вопросов здесь, кажется, имеют проблему наоборот (желая (неправильно) представить модальное представление и оставить панель вкладок видимой).

Это мои попытки:

[self presentModalViewController:controller animated:YES]; // inside tab bar controller :-(
[self.tabBarController presentModalViewController:controller animated:YES]; // nothing is displayed. The new controller is instantly deallocated.
[self.navigationController presentModalViewController:controller animated:YES]; // inside tab bar controller :-(

Исследуя это, self.tabBarController фактически равен нулю. Кажется, что нет ссылки на контроллер панели вкладок ... Я думаю, для модального отображения в верхней части панели вкладок, мне нужно получить ссылку на этот контроллер панели вкладок?

1 Ответ

1 голос
/ 01 декабря 2010

Кажется, я нашел решение, я не уверен, что оно кошерное, потому что почему-то я не смог использовать указатель self.tabBarController контроллера представления, в котором я запускаю вызов контроллера представления.

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

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