1

Моя проблема заключается в том, что я хочу иметь представление панели вкладок с его показанными в первый раз контроллерами представлений. В контроллерах дочерних представлений, в зависимости от того, какие элементы управления нажаты, я либо хочу, чтобы А) развернулось в пределах панели табуляции (отключение контроллера детского представления) или B) развернитесь по экрану панели вкладок (отскакивая панель вкладок контроллер просмотра).UINavigationController внутри UITabBarController внутри UINavigationController

Я попытался решить эту проблему, обернув контроллер навигации в контроллеры детского вида (поэтому я могу развернуть с помощью метода A) контроллера панели вкладок и затем обернуть другой контроллер навигации вокруг самого контроллера панели вкладок (так Я могу развернуть с использованием метода B), отсюда и название. Так он идет: Window -> UINavigationController -> UITabBarController -> UINavigationController -> ребенок вид контроллера

Проблема заключается в том, что я в конечном итоге с двумя навигационными решетками:

two navigation bars!! http://img527.imageshack.us/img527/240/problemc.png

Кто-нибудь еще было это проблема, и если да, то как вы обходились? Спасибо!

+0

UInception .... – Martin

ответ

2

В этом случае, возможно, вы можете просто использовать UITabBar и программно управлять своим состоянием, не вставляя контроллер панели вкладок внутри другого контроллера.

1

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

Это чисто спекуляция; я не знаю, будет ли работать какой-либо подход или как они будут, но эти идеи - это то, с чем я начал бы работать, если бы я пытался это сделать.

1

Просто скрыть панель вы не хотите, просто, как это:

[navigationController setNavigationBarHidden:YES animated:NO]; 
Смежные вопросы