Один контроллер UINavigation для всего приложения? - PullRequest
0 голосов
/ 07 февраля 2011

Я создал UINavigationController в моем appdelegate и инициализировал его с моим "modelselectionViewController".Этот VC имеет разные uibuttons, и при касании новый VC ("modelViewController") помещается в стек навигации.

Этот "modelViewController" действует как мое представление шаблона и имеет контроллер uitabbar с различными вкладками.Первый VC отображается сразу, но любые изменения в навигационном контроллере не работают.Я хотел бы установить название заголовка, но этот навигационный контроллер имеет значение null.

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

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

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

Ответы [ 2 ]

1 голос
/ 07 февраля 2011

Я думаю, вы можете прочитать Объединение ViewControllers .

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

0 голосов
/ 07 марта 2011

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

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

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

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

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

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