我正在为我的应用程序介绍,在swift 4中,但我介绍了一个问题。我有一个introController和HomeController视图,根视图是introController所以我想如果用户从introControll登录到HomeController,那么每当用户打开应用程序时,第一个视图出现的是HomController,(他们不需要再次登录)。
我认为在userDefaults内存储登录状态,我不希望我的应用使用Navigation,任何想法?请帮忙
提前致谢
答案 0 :(得分:1)
当您登录时保存任何bool值,如下所示:
UserDefaults.standard.set("1", forKey: "isLogin")
在appdelegate中检查登录状态,如下所示:
if UserDefaults.standard.value(forKey: "isLogin") != nil{
//Navigate to homeviewcontroller
}else{
//Navigate to rootviewcontroller
}
答案 1 :(得分:0)
这很简单
当用户成功登录时,您需要在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()
}
然后在didFinishLaunchingWithOptions的AppDelegate中返回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
}