如何检查用户是否已登录,如果没有重定向到登录屏幕



我有我的登录屏幕嵌入在UINavigationController和我的主页屏幕嵌入在UITabBarController

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

但是现在我想检查用户是否登录并使TabBarController成为rootViewController,如果用户没有登录,重定向到登录屏幕,然后segue到TabBarController并使其成为rootViewController

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

由于您以编程方式创建LoginViewController,因此我假设默认情况下TabBarController将是storyboardrootViewController。在你的AppDelegate中你所需要做的就是:

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
}

注意:我使用的是Swift 3,所以语法会有轻微的差异。

相关内容

最新更新