Bezdepbonusu7Программирование: статьи и ответы

Вопрос

IPhone Dev: активировать вид кнопки tabBar

Автор вопроса: CommunityОтветов: 3

У меня есть приложение с tabBar, которое обрабатывает все представления. В первом представлении у меня есть процесс входа в систему. Когда этот процесс завершится, я хочу автоматически перейти ко второму представлению tabBar, не заставляя пользователя щелкать соответствующую кнопку tabBar.

Все, что у меня есть до сих пор, это выделить кнопку следующим образом:

myTabBar.selectedItem = [myTabBar.items objectAtIndex:1];

Но я понятия не имею, как автоматически вывести второй вид, связанный с этой кнопкой, на передний план. До сих пор пользователю приходилось нажимать кнопку, когда она подсвечивается (выбирается).

Любая идея о том, как это сделать? Является ли это возможным? Это будет высоко ценится. Спасибо.

iphonetabbar

Ответы

Ответ 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, как показано в приведенном выше фрагменте кода, должно работать нормально.

Ответ 2 · рейтинг 1 · nicola

вам следует реализовать протокол UITabBarControllerDelegate, как описано здесь: http://developer.apple.com/library/ios/#documentation/uikit/reference/UITabBarControllerDelegate_Protocol/Reference/Reference.html

чтобы изменить активную вкладку, используйте tabBarController:shouldSelectViewController: Как объяснено в документации "Вы можете использовать этот метод, чтобы динамически решить, следует ли сделать данную вкладку активной вкладкой".

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы