UINavigationController внутри UITabBarController внутри UINavigationController - PullRequest
1 голос
/ 01 сентября 2009

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

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

Проблема в том, что я получаю две панели навигации:

две панели навигации !! http://img527.imageshack.us/img527/240/problemc.png

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

Ответы [ 3 ]

2 голосов
/ 01 сентября 2009

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

1 голос
/ 08 декабря 2010

Просто скройте бар, который вам не нужен, просто так:

[navigationController setNavigationBarHidden:YES animated:NO];
1 голос
/ 01 сентября 2009

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

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

...