Откройте представление в UITabBarController
-
03-07-2019 - |
Вопрос
Мне нужно программно открыть определенную вкладку в моей панели вкладок.
Я попытался вызвать следующий метод из моего 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).