Innen AppDelegate (innerhalb didFinishLaunchingWithOptions): -
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()
}
In LoginVC nach Anmeldeinformationen Benutzer Validierung, wenn die Anmeldung erfolgreich ist, setzen Bool Wert auf true wie folgt: -
// after successful login
NSUserDefaults.standardUserDefaults().setBool(true, forKey: "isUserLoggedIn")
NSUserDefaults.standardUserDefaults().synchronize()
Ähnlich, wenn Benutzer klickt auf Abmeldung Setzen Sie Bool auf "false" und setzen Sie sich als "Root VC" wie folgt ein: -
//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
Damit wird der Übergang direkt in einem Schritt durchgeführt. Lassen Sie mich im Falle von Problemen wissen.
Hinweis: - Vergessen Sie nicht, Storyboard-ID im Identitätsbereich Ihrer Storyboard-Datei einzurichten.
Ändern Sie rootViewController im Fenster. – Hasya
Wollen Sie also einen neuen Login View Controller instanziieren und ihn als Root-Ansicht des Fensters festlegen? – David
Ich habe immer neue Login-Controller instanziiert, schau in Github, wie die Leute das tun, es sieht so aus, als ob dies der Weg ist –