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