内部的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人们是如何做到这一点的,看起来这是做这件事的方法 –