swift ios选项卡栏didSelectItem当前登录屏幕

swift ios选项卡栏didSelectItem当前登录屏幕,ios,swift,uitabbarcontroller,segue,Ios,Swift,Uitabbarcontroller,Segue,如果用户单击选项卡2或选项卡3,我将尝试显示登录屏幕 我试着加上: override func tabBar(tabBar: UITabBar, didSelectItem item: UITabBarItem) { if item.tag == 1 || item.tag == 2 { if LocalStore.getToken() == nil { self.performSegueWithIdentifier("l

如果用户单击选项卡2或选项卡3,我将尝试显示登录屏幕

我试着加上:

override func tabBar(tabBar: UITabBar, didSelectItem item: UITabBarItem) {

        if item.tag == 1 || item.tag == 2 {
            if LocalStore.getToken() == nil {
                self.performSegueWithIdentifier("loginSegue", sender: self)
                return
            }
        }
}
这将显示模式VC/登录屏幕,我将其作为rootVC的一个分段。但是选项卡栏仍然与单击的选项卡相分离


我想做的是停止选项卡栏窗体,触发一个到所选VC/单击选项卡的序列,而只显示模式VC/登录屏幕

如果您使用的是
UIAbbarController
,您可以覆盖其委托的
shouldSelectViewController
方法(
UIAbbarController
)。您可以动态决定是否切换到特定的视图控制器:

func tabBarController(tabBarController: UITabBarController,
shouldSelectViewController viewController: UIViewController) -> Bool {
    guard 
        let tab = tabBarController.viewControllers?.indexOf(viewController) 
        where [1, 2].contains(tab) 
        else { return true }
    if LocalStore.getToken() == nil {

        /// Present the login screen here

        return false
    }
    return true
}