2011-02-07 3 views
0

Я создал UINavigationController в своем appdelegate и инициализировал его своим «modelselectionViewController». Этот VC имеет разные uibuttons, и когда он коснулся, новый VC («modelViewController») помещается в навигационную таблицу.Один UINavigationcontroller для всего приложения?

Этот «modelViewController» действует как мой шаблонный вид и имеет uitabbarcontroller с различными вкладками. Первый VC отображается немедленно, но любые изменения в навигационном контроллере не работают. Я хотел бы установить имя заголовка, но навигационный контроллер имеет значение NULL.

NSLog (@ "navi:% @", self.navigationController);

Если я изменяю свой код, чтобы нажимать разные VC при касании разных вкладок, навигация работает, но только с третьим уровнем иерархии навигации.

Я хочу знать, можно ли использовать только один навигационный контроллер для всех моих разных вкладок. Надеюсь, я сделал свою настройку ясной. Цените всю свою помощь. thanks

ответ

0

Если вы создаете UITabBarController из представления, управляемого в UINavigationController (то есть: если вы сначала создаете навигационный контроллер, а когда создаете контроллер tabbar), вы начинаете борьбу с фреймворками. Вот увещевание из документации на комбинировании ViewController интерфейсы:

Приложение, которое использует панель вкладок контроллер также может использовать навигацию контроллеров в одной или нескольких вкладок. Когда , объединяющий эти два типа вида контроллер в том же пользовательском интерфейсе, контроллер панели вкладок всегда действует как обертка для навигации контроллеров . Вы никогда не хотите нажимать контроллер панели вкладок на стек навигационной панели навигации . Это создает необычную ситуацию , в результате чего панель вкладок появляется только в то время как конкретный контроллер просмотра находится на верхней панели навигации . Таблицы баров рассчитаны на постоянство, поэтому этот переходный подход может быть запутанным для пользователей.

Я читал, что в качестве «если это не нарушает то, что мы не думали о о следующем обновлении, мы могли бы отклонить приложение в любом случае, потому что это" сбивает с толку пользователей.»

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

Можно попытаться перейти к UITableView и использовать его ячейки для ввода модального представления в стек навигации. Это было бы знакомо пользователям, а также джив с намерением классов навигации.

1

Возможно, вы захотите прочитать Combining ViewControllers.

В общем, вы должны иметь контроллер панели управления как «корневой» контроллер, а не как «дочерний» контроллер. Быстрый поиск в документе Apple не дал формального «запретного», но может быть.

Смежные вопросы