2009-05-04 3 views
1

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

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

self.selectedViewController = myVController; 

который не работает.

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

спасибо.

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

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

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

ответ

4

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

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

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

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

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

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

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

} 
-1

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

+0

Это та же проблема, что мой код был. Представление не всегда обновляется. –