內部的AppDelegate(內didFinishLaunchingWithOptions): - :
// after successful login
NSUserDefaults.standardUserDefaults().setBool(true, forKey: "isUserLoggedIn")
NSUserDefaults.standardUserDefaults().synchronize()
類似地,當 -
let userLoginStatus = NSUserDefaults.standardUserDefaults().boolForKey("isUserLoggedIn")
if(userLoginStatus)
{
// Assuming "Main" is the name of your storyboard
let mainStoryBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
letMainVC = mainStoryBoard.instantiateViewControllerWithIdentifier("Main") as! MainVC
window!.rootViewController = letMainVC
window!.makeKeyAndVisible()
}
在LoginVC驗證用戶憑證後,當登錄成功,布爾值,如下所示設置爲真用戶單擊註銷將Bool設置爲false,並將Root設置爲根VC,如下所示: -
//Inside logout closure :-
NSUserDefaults.standardUserDefaults().setBool(false, forKey: "isUserLoggedIn")
NSUserDefaults.standardUserDefaults().synchronize()
let loginVC = self.storyboard?.instantiateViewControllerWithIdentifier("Login") as! LoginVC
let appDel:AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
appDel.window?.rootViewController = loginVC
這將直接進行轉換。如有任何問題,請告知我。
注意: -不要忘記在Storyboard文件的Identity部分設置Storyboard ID。
在窗口上更改rootViewController。 – Hasya
那麼你是說實例化一個新的登錄視圖控制器並將其設置爲窗口的根視圖? – David
我一直在實例化新的登錄控制器,看看github人們是如何做到這一點的,看起來這是做這件事的方法 –