Найти, какой элемент панели вкладок выбран - PullRequest
0 голосов
/ 09 апреля 2019

Я ищу способ найти, какой элемент панели вкладок выбран на контроллере панели вкладок.

У меня есть 5 элементов, и для одного из них я хотел бы показать "регистрацию"view ", если пользователь не вошел в систему.

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

Есть идеи?Спасибо

self.tabBarController?.delegate = UIApplication.shared.delegate as? UITabBarControllerDelegate

        func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
            if viewController is CalculatorViewController {
                print("Redirect to register view")
            }

            return true
        }

Ответы [ 2 ]

0 голосов
/ 10 апреля 2019

Вы можете попробовать использовать такую ​​вещь (если вы, конечно, используете контроллер навигации)

override func viewDidLoad() {
    super.viewDidLoad()

    if let index = self.tabBarController?.selectedIndex, index == 3 {
         // do things here
    }

}

UPD. Или даже так

override func viewDidLoad() {
    super.viewDidLoad()

    if !userLogedIn {
         self.tabBarController?.selectedIndex = index // index is your tab bar item with login view
    }

}
0 голосов
/ 09 апреля 2019
 func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
        guard let index = tabBarController.viewControllers?.firstIndex(where: {$0 === viewController}) else {
            return false
        }

        if index == 3 && !IS_LOGGED_IN{
            /*** show registration ***/
            return false //if you want to disable transition to the associated viewController against that tab
        }
        return true
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...