[英]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.