У меня есть приложение с tabBar, которое обрабатывает все представления. В первом представлении у меня есть процесс входа в систему. Когда этот процесс завершится, я хочу автоматически перейти ко второму представлению tabBar, не заставляя пользователя щелкать соответствующую кнопку tabBar.
Все, что у меня есть до сих пор, это выделить кнопку следующим образом:
myTabBar.selectedItem = [myTabBar.items objectAtIndex:1];
Но я понятия не имею, как автоматически вывести второй вид, связанный с этой кнопкой, на передний план. До сих пор пользователю приходилось нажимать кнопку, когда она подсвечивается (выбирается).
Любая идея о том, как это сделать? Является ли это возможным? Это будет высоко ценится. Спасибо.
Ответ 1 · рейтинг 1 · titaniumdecoy
Используйте selectedViewController или selectedIndex соответствующих методов UITabBarController.
В ответ на комментарии к этому ответу я привел пример того, как это можно сделать:
id firstViewController = [[FirstViewController alloc] initWithNibName:@"FirstView" bundle:[NSBundle mainBundle]];
id secondViewController = [[SecondViewController alloc] initWithNibName:@"SecondView" bundle:[NSBundle mainBundle]];
self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:firstViewController, secondViewController, nil];
[firstViewController release];
[secondViewController release];
// Select the second tab bar item and its view
self.tabBarController.selectedIndex = 1;
[self.window addSubview:tabBarController.view];
[self.window makeKeyAndVisible];
В моем тестировании кажется, что использование метода selectedViewController UITabBarController для установки текущего представления не обновляет свойство selectedIndex (отображается новое представление, но выбранный UITabBarItem не изменяется). Это отличается от поведения, обещанного в документации. Однако использование метода selectedIndex, как показано в приведенном выше фрагменте кода, должно работать нормально.