簡體   English   中英

迅速的ios tabBar didSelectItem當前登錄屏幕

[英]swift ios tabBar didSelectItem present login screen

如果用戶單擊選項卡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
            }
        }
}

這將顯示我從rootVC那里獲取的模式VC /登錄屏幕。 但是選項卡欄仍會鎖定到單擊的選項卡。

我想要做的是停止選項卡欄窗體向選定的VC /單擊的選項卡觸發搜索,而僅顯示模式VC /登錄屏幕

如果使用的是UITabBarController ,則可以覆蓋其委托( UITabBarControllerDelegate )的shouldSelectViewController方法。 您可以在其中動態決定是否要切換到特定的視圖控制器:

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
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM