如何检查用户是否登录以及如果未登录则重定向到登录屏幕

EI-*_*-01 3 ios swift2

我将登录屏幕嵌入在 中UINavigationController,将主页屏幕嵌入在 中UITabBarController

我的登录页面是通过编程完成的,并TabBarController使用storyboards. 在AppDelegate.swift文件中,我将登录屏幕设为rootViewController.

但现在我想检查用户是否已登录并使其成为TabBarControllerrootViewController如果用户未登录,则重定向到登录屏幕,然后转到 并将TabBarController其设为rootViewController

服务器通过向客户端发送令牌来验证用户身份。我是否使用存储令牌NSUserDefaults?我应该检查用户是否有_token_ 作为验证用户是否登录的方法吗?

Ade*_*eel 5

由于您是以LoginViewController编程方式创建的,所以我假设默认情况下TabBarController是。您需要做的就是这样。rootViewControllerstoryboardAppDelegate

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.

    let token = UserDefaults.standard.object(forKey: "token")
    if token == nil {
        //***************
        //Create your LoginViewController and make it the rootViewController
        //***************
    }
    return true
}
Run Code Online (Sandbox Code Playgroud)

注意:我正在使用Swift 3,因此语法上会略有不同。