Вопрос

Мне нужно программно открыть определенную вкладку в моей панели вкладок.

Я попытался вызвать следующий метод из моего UITabBarController:

self.selectedViewController = myVController;

Что не работает.

Как правильно открыть вкладку?

Спасибо.

Обновление: я попробовал следующий код:

self.selectedViewController = [ [self viewControllers] objectAtIndex: 0];

, которая открывает мне желаемую вкладку (она выбирается), но активный вид не обновляется.

Это было полезно?

Решение

Что касается свойства selectedIndex , в документах Apple говорится:

  

В версиях iPhone OS до   версия 3.0, это свойство отражает   индекс выбранного элемента панели вкладок   только. Попытка установить это значение   индекс контроллера представления, который   не отображается в панели вкладок, но   вместо этого управляется навигацией Больше   контроллер, не имеет никакого эффекта.

Возможно, это была ваша проблема?

Один из возможных обходных путей - использовать свой собственный UITabBar и обрабатывать свои собственные представления. Тогда вы можете сделать что-то вроде этого:

[tabBar setSelectedItem:[tabBar.items objectAtIndex:1]];

Просто внедрите UITabBarDelegate и определите эту функцию, чтобы получать сообщения выбора элементов и вручную переключать представления. (Хотя, если вы используете расширенные функции UITabBarController , это может не стоить ваших усилий.)

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
{

}

Другие советы

Я сделал это, используя self.tabBarController.selectedIndex = 1 (первая вкладка с индексом 0).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top