簡體   English   中英

如何使用UserDefaults保存已登錄狀態?

[英]How to user UserDefaults to Save Logged in state?

我正在快速介紹我的應用程序,但我遇到了問題。 我有一個introController和HomeController視圖,根視圖是introController,所以我希望如果用戶從introControll登錄到HomeController,則每當用戶打開應用程序時,出現的第一個視圖就是HomController,(他們不需要再次登錄)。

我想到了userDefaults內部的商店登錄狀態,我不希望我的應用使用導航,有什​​么主意嗎? 請幫忙

提前致謝

當您登錄時,保存任何布爾值,如下所示:

UserDefaults.standard.set("1", forKey: "isLogin")

在appdelegate中檢查登錄狀態,如下所示:

if UserDefaults.standard.value(forKey: "isLogin") != nil{
            //Navigate to homeviewcontroller
 }else{
            //Navigate to rootviewcontroller
 } 

很簡單

用戶成功登錄后,需要將狀態保存在UserDefaults中,如下所示:[Swift 3,4]

/// call if user logged in
func saveLoggedState() {

    let def = UserDefaults.standard
    def.set(true, forKey: "is_authenticated") // save true flag to UserDefaults
    def.synchronize()

}

然后在AppDelegate中的didFinishLaunchingWithOptions中,然后返回true

let def = UserDefaults.standard
let is_authenticated = def.bool(forKey: "is_authenticated") // return false if not found or stored value

if is_authenticated {
    // user logged in
    let homeController = HomeController() // create instance of HomeController or from Storyboard

    window?.rootViewController = homeController // change rootViewController to HomeController
    window?.makeKeyAndVisible() // show window
}

暫無
暫無

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

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