2014-02-21 5 views
0

У меня есть контроллер панели вкладок, встроенный в контроллер навигации. Я хочу установить заголовок в навигации с контроллеров представления внутри вкладок.Как установить заголовок панели навигации из контроллеров просмотра внутри вкладок?

Если я использую:

self.title = "ABC"; 

или

self.tabBarItem.title = "ABC"; 

название вкладки в нижней части установлен в положение «ABC», но не название в панели навигации в верхней части.

Однако я хочу только установить заголовок на панели навигации, а не на вкладках внизу.

Как я могу это сделать?

enter image description here

+0

Почему вкладка встроена в навигатор? Обычно каждая вкладка имеет свой собственный навигатор ... – Wain

+1

Плохой дизайн, возможно. Вы должны встроить контроллер навигации в контроллер панели вкладок, а не наоборот. – duci9y

+0

@Wain Хороший вопрос ... Я пробовал это, но если я встрою контроллер вида в контроллер навигации и этот контроллер навигации в контроллер панели, но он не отобразит вкладки ...? Или я что-то пропустил ...? Я должен отметить, что я использую SASlideMenu, что может быть причиной того, что обычный способ не сработает? – mrd

ответ

2

Вы должны пройти навигацию по цепочке.

UINavigationController показывает элемент navigationItem, принадлежащий его topViewController, который является UITabBarController.

UITabBarController отображает заголовки navigationItem на вкладках. Так что вам нужно сделать, это убедиться, что navigationItem в tabBarController является его navigationItem selectedViewController в

Подведем итоги:

UINavigationController title = topViewController.navigationItem.title 

UITabBarController tabTitle = selectedViewController.navigationItem.title 

UIViewController title = navigationItem.title 
+4

Решение: 'UITabBarController * tabController = (UITabBarController *) self.parentViewController; tabController.navigationItem.title = @ "ABC"; ' – mrd

+0

Это хорошо работает –

2

Вы можете установить его с помощью self.navigationItem.title.

[email protected]"ABC"; 
+0

Нет, если контроллер представления на самом деле не находится в контроллере nav, вы не можете. В настоящее время контроллер навигатора получает заголовок от контроллера табуляции. – Wain

+0

@Wain: я не получил ваш комментарий ??? не понимаете правильно, что вы хотите сказать? – Optimistic

+0

@ Оптимистичный, сохраненный мой 1 час, Спасибо –

0

Вероятно, вы используете неправильный элемент, попробуйте в следующем примере:

self.tabBarController.title = @"YOUR_TITLE"; 
Смежные вопросы