self.tabBarItem.title не работает?
-
23-08-2019 - |
Вопрос
В моем приложении для iPhone есть панель вкладок.Эта панель вкладок содержит UINavigationController.У меня есть:
- В Interface Builder установите для заголовка элемента вкладки значение «Создать новый».
- В контроллере UINavigation у меня есть
self.tabBarItem.title = 'Create New';
иself.title = 'Create New';
- В UIViewController, помещенном в контроллер:self.tabBarItem.title = 'Создать новый';но
self.title = 'Blah';
.
Но всегда отображается собственный заголовок первого контроллера представления, помещенного в навигационный контроллер (Бла).Как бы вы установили заголовок элемента панели вкладок?Спасибо, Исаак Уоллер
Решение
Я нашел, если бы я использовал self.navigationItem.title = 'Blah';
вместо self.title
, это сработает.
Другие советы
Я только что решил ту же проблему.я использовал self.tabBarItem.item
для первой вкладки моего tabBarController
, который является первым и единственным, который загружает свой navigationController
.Поэтому для первой вкладки на панели вкладок вам нужно установить заголовок по-другому.Я попробую проиллюстрировать:
панель вкладок с тремя вкладками (а UINavigationController
предоставляет контент на каждой вкладке)
- вкладка 1
- загружает tab1NavController.m (устанавливает
self.tabBarItem.item
на «1-й») - загружает tab1ViewController.m (устанавливает
self.title
в «Просмотр tab1»
- загружает tab1NavController.m (устанавливает
- вкладка 2
- загружает tab2NavController.m (устанавливает
self.tabBarItem.item
на «2-й») - загружает tab2ViewController.m (устанавливает
self.title
на вкладку «Вид»
- загружает tab2NavController.m (устанавливает
- вкладка 3
- загружает tab3NavController.m (устанавливает
self.tabBarItem.item
на «3-й») - загружает tab3ViewController.m (устанавливает
self.title
в «Просмотр tab3»
- загружает tab3NavController.m (устанавливает
Когда панель вкладок загружает все свои viewControllers
для каждой из трех вкладок кнопки вкладок на панели вкладок имеют следующие метки:
- 'Просмотр tab1'
- '2-й'
- «3-й»
Это связано с тем, что второй и третий навигационные контроллеры не загружаются, пока пользователь не выберет эти вкладки.Первая вкладка загружается при UITabBarController
загружается и в соответствии с порядком событий заменяет tabBarItem.title
с rootViewController navController self.title
.
Решение
Чтобы это исправить, вы просто используете self.navigationItem.title
вместо self.title
.Вам нужно сделать это ТОЛЬКО для rootViewController первой вкладки navController.
Надеюсь это имеет смысл.Вы решили свою проблему, но я хотел, чтобы вы и все остальные знали, ПОЧЕМУ это работает именно так.