Мое приложение имеет два различных режима. В делегате приложения есть контроллер панели вкладок. Есть две вкладки, каждая из которых использует контроллеры представления в подклассе. Два контроллера представления по существу содержат контроллер 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 фактически равен нулю. Кажется, что нет ссылки на контроллер панели вкладок ... Я думаю, для модального отображения в верхней части панели вкладок, мне нужно получить ссылку на этот контроллер панели вкладок?