Подтвердить что ты не робот

Как установить выбранную вкладку в UITabBarController с помощью StoryBoard?

Как я могу переключиться на некоторую вкладку в UITabBarController с помощью StoryBoard? Я пробовал код ниже, но не успел (вкладка не выбрана):

self.tabBar.selectedIndex = 3;

Честно говоря, я использовал файлы nib без StoryBoard, и этот код выше работал отлично в

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions
          :(NSDictionary *)launchOptions

но теперь я не могу настроить вкладку программно. Возможно, есть еще одна проблема, которая не связана с выбором вкладки. Как я могу переключаться на вкладки?

4b9b3361

Ответ 1

Возьмите экземпляр UITabBarController, затем установите свойство selectedViewController:

yourTabBarController.selectedViewController=[yourTabBarController.viewControllers objectAtIndex:3];//or whichever index you want

Ответ 2

Александр, я думаю, что ваша проблема заключается в получении правильного экземпляра панели вкладок. Если ваша панель вкладок является вашим контроллером корневого представления, вы можете сделать это, как это, в вашем appdelegate, если метод didFinishLoading:

UITabBarController *tabBar = (UITabBarController *)self.window.rootViewController;
    [tabBar setSelectedIndex:3];

Попробуйте и скажите мне, пожалуйста, результат.

Ответ 3

* Swift Comment - 18 месяцев спустя, если вы конвертируете решение Yanchi в Swift в свой appDelegate, вы получите ожидаемый результат. Перевод Swift:

let tabBar: UITabBarController = self.window?.rootViewController as! UITabBarController

tabBar.selectedIndex = 1

Ответ 4

Это тоже будет работать в страйке...

[self.tabBarController setSelectedIndex:3]; с этим добавлением UITabBarControllerDelegate в .h

а затем используйте этот метод delegate

- (BOOL)tabBarController:(UITabBarController *)theTabBarController shouldSelectViewController:(UIViewController *)viewController
{
    return (theTabBarController.selectedViewController != viewController);
}

Ответ 6

Вы можете достичь этого также с помощью раскадровки. Ctrl-drag от tabBarController к вашему ViewController (s) и выберите "Сцепление Segue, View Controllers". Первым выбранным ViewController будет стандартный/начальный ViewController.

Ответ 7

Вы также можете установить вкладку по умолчанию в Пользовательские атрибуты времени выполнения с помощью раскадровки.

Выберите панель управления вкладками из раскадровки, в правой панели выберите Identity Inspector и добавьте атрибут:

Key Path : selectedIndex
Type     : Number
Value    : 2 ( whatever number you want )