У меня есть приложение с 5 UIViewController внутри соответствующего UINavigationController, все спрятаны внутри UITabBarController, которое отображает 5 вкладок внизу экрана.
Я хочу отобразить еще один UIViewController (внутри UINavigationController) при нажатии кнопки диалога.
Это представление должно загружаться и выгружаться только программно; то есть он не должен отображаться на панели вкладок. Однако я хочу, чтобы панель вкладок всегда была видна.
Если я добавлю [UINavigationController view] к [self window], UITabBar покроется. Если я добавлю его к любому другому слою, UINavigationController добавит компенсацию, которую он имеет для строки состояния, поэтому он будет отображаться ниже, чем ожидалось.
Решением было бы добавить 6-й UINavigationController к UITabBar с остальными, но с его tabBarItem скрытым. Затем я могу показать и скрыть его, используя свойство tabBars selectedIndex.
Доступ к tabBarItem через UIViewController не показывает очевидного способа сделать это.
@wisequark, я думаю, вы совершенно неправильно поняли, и вы почти переписали архитектуру моего приложения. Однако у меня есть отдельный навигационный контроллер для каждого представления, поскольку они взаимоисключающие, и нет концепции «детализации».
@Kendall, это то, что я ожидаю, что мне придется сделать - чтобы модальное представление появилось с кнопкой скрытия, чтобы вернуть нормальный интерфейс. Но было бы неплохо, чтобы панель вкладок всегда была видна, поэтому мне просто интересно, знает ли кто-нибудь способ.