从 TabBar 注销

Logout from TabBar

从 TabBar 注销的最佳方法是什么。我有一个应用程序,其中一个选项卡中有一个连续注销选项。当我选择这一行时,我想转到我的登录屏幕。如果您没有登录,该应用程序将启动登录屏幕;如果您已经登录杜松子酒,则该应用程序将启动主屏幕(是一个标签栏控制器)。我在 appDelegate 中管理它:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

    self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
    let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)

    let defaults = NSUserDefaults.standardUserDefaults()
    let notFisrtRun = defaults.boolForKey("notFirstRun")

    // Chooses between login view and my list view if the user is already authenticated when the app is launched
    if AuthToken.sharedInstance.isAuthenticated() && notFisrtRun {
        let tabBarViewController = mainStoryboard.instantiateViewControllerWithIdentifier("TabBarViewController") as? UITabBarController

        self.window?.rootViewController = tabBarViewController
    } else {
        let loginViewController = mainStoryboard.instantiateViewControllerWithIdentifier("LoginViewController") as? LoginViewController

        self.window?.rootViewController = loginViewController
    }

    self.window?.makeKeyAndVisible()

    return true
}

应用程序以模态方式显示登录屏幕是很正常的。注销后,呈现 loginViewController 模态 。如果用户重新登录,关闭 loginViewController.

您还可以创建一个自定义 segue 来替换 rootViewControllerThis question 可以帮助您开始。