Измените заголовок UITabBarItem динамически - PullRequest
5 голосов
/ 25 марта 2011

У меня 9 вкладок на панели вкладок ... И я хочу изменить название всех из них с какого-либо контроллера представления. и я сделал это следующим образом:

for (int i=0; i(less than)[appDelegate.tabBarController.viewControllers count]; i++) {
  UIViewController *uv=[appDelegate.tabBarController.viewControllers objectAtIndex:i];
  uv.tabBarItem.title=@"test";
}

Мгновенно меняет заголовок для всех видимых вкладок, но не работает для вкладок более ...

Однако, если я нажимаю на кнопку редактирования в более nav cntrl, он показывает измененное имя. Кроме того ... очень странно ... Если я выберу какую-то вкладку больше, то все вкладки будут отображать новое имя
почему так ???

1 Ответ

1 голос
/ 06 апреля 2011

Изменение названия UIBarItem (суперкласса UITabBarItem) необходимо выполнить до того, как элемент будет добавлен в панель для документов Apple. Похоже, iOS кэширует заголовки после добавления элементов на панель, что приводит к непредсказуемому поведению.

Из ссылки на класс UIBarItem:

название
Название, отображаемое на элементе.

@ свойство (неатомное, копия) NSString * title

Обсуждение
Вы должны установить это свойство перед добавлением элемента в панель. Значением по умолчанию является ноль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...