Как переключать вкладки в UITabBarController? - PullRequest
0 голосов
/ 18 июня 2010

У меня есть UITabBarController, который представлен модально из RootViewController:

stvTabBarController = [[UITabBarController alloc] init];
stvTabBarController.delegate = self;
stvTabBarController.viewControllers = [NSArray arrayWithObjects:stvNavController, scheduleNavController, nil];
stvTabBarController.selectedViewController = stvNavController;

[self presentModalViewController:stvTabBarController animated:YES];

Как я могу переключать вкладки из stvNavController?Я не могу сделать:

self.tabBarController.selectedIndex = 3;

, потому что у меня нет ссылки на tabBarController в stvNavController.

Ответы [ 3 ]

0 голосов
/ 19 июня 2010

Как я вижу в вашем коде, под контроллером вкладок есть только 2 контроллера вида.

Вы пытаетесь выбрать четвертый ...

0 голосов
/ 19 мая 2019

1: добавить расширение UIApplicaition

    extension UIApplication {

/*function will return reference to tabbarcontroller */

func tabbarController() -> UIViewController? {

    guard let vcs = self.keyWindow?.rootViewController?.childViewControllers else { return nil }
    for vc in vcs {
        if  let _ = vc as? TabBarViewController {
            return vc
        }
    }
    return nil
}}

2: получить ссылку на tabbarcontroller

    guard let tabbarController = UIApplication.shared.tabbarController() as? TabBarViewController else { return }
   tabbarController.selectedIndex = 3
0 голосов
/ 18 июня 2010

Проверьте значение свойства parentViewController stvNavController - оно должно быть ссылкой на контроллер панели вкладок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...