Проблема NavigationController и TabBarController Вместе - PullRequest
1 голос
/ 21 декабря 2009

У меня есть запрос, касающийся совместного использования контроллера навигации и tabBarController.

Я объясню подробно.

Подача моей заявки выглядит следующим образом,

Class A (Navigation starts from here)
--Class B (Pushed on navigation from A)
----Class C (Pushed on navigation from B)
------Tab P
------Tab Q
------Tab R (I want navigation here)
------Tab S (I want navigation here)

В моем классе C есть TabBarController с четырьмя вкладками. Теперь две вкладки должны иметь навигацию.

Я создал два отдельных контроллера навигации для двух вкладок (R и S) Но когда я его использую, на экране появляются две панели навигации. Один из себя и другой Root Navigation Bar.

Нужно ли скрывать корневую панель навигации? Как это сделать? Есть ли другой способ?

Пожалуйста, помогите мне в этом.

Заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 31 декабря 2009

Вы можете поместить TabBarController внутри NavBarController, но вы не должны использовать его наоборот, согласно официальной документации Apple.

Тем не менее, вы можете взломать его, заменив контроллер корневого представления на TabBarController при выборе его на экране вашего NavBarController. Это бы скрыло панель навигации. Но, разумеется, у вас не будет стека навигационных контроллеров, которые вы можете удобно вытащить, и у вас нет навигационной панели вверху с кнопкой для возврата назад.

Возможно, вам придется переосмыслить иерархию навигации, если вы помещаете панель вкладок в стек NavBarController.

2 голосов
/ 21 декабря 2009

Процесс звучит не так уж и удобно для пользователя, пройдя два уровня вглубь навигации, пользователь ожидает некоторые подробные настройки, а не целый новый экран с 4 вкладками.

Совет: в их iTunesU в Стэнфордском университете есть бесплатный полный курс по iPhone Dev. Его дают сотрудники Apple, в классах NavigationController + TabBarController они подробно рассказывают о том, как вы должны построить иерархию.

0 голосов
/ 22 декабря 2009

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

Кстати, вы можете скрыть панель навигации как ..

[self.navigationController setNavigationBarHidden:Yes];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...