首页 > 解决方案 > 查找选择了哪个标签栏项目

问题描述

我正在寻找一种方法来查找在我的标签栏控制器上选择了哪个标签栏项目。

我有 5 个项目,其中一个,如果用户未登录,我想显示一个“注册视图”。

我已经完成了所有验证,但我找不到检查用户是否点击了我的标签栏上的第四项的好方法。

有任何想法吗 ?谢谢

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
        }

标签: swiftuitabbarcontroller

解决方案


你可以尝试使用这样的东西(如果你使用的是导航控制器,当然)

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
    }

}

推荐阅读