保持用户登录 ios app swift

kvr*_*a13 1 ios swift xcode7

我制作了包含登录和注册功能的应用程序。当我当时运行我的应用程序时,登录和其他功能一切正常,但是当我停止我的应用程序并再次运行它时,登录页面再次显示我可以让用户在再次启动应用程序时登录。下面是我在我的应用程序中使用的代码。

override func viewDidAppear(animated: Bool) {
    super.viewDidAppear(true)

    let prefs:NSUserDefaults = NSUserDefaults.standardUserDefaults()
    let isLoggedIn:Int = prefs.integerForKey("ISLOGGEDIN") as Int
    if (isLoggedIn != 1) {
        self.performSegueWithIdentifier("goto_login", sender: self)
    } else {
        self.usernameLabel.text = prefs.valueForKey("USERNAME") as? String
    }
}


import UIKit

@UIApplicationMain

class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

        // Override point for customization after application launch.

        /*

        var rootViewController = self.window!.rootViewController

        let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main" , bundle: nil)

        var isUserLoggedIn:Bool = NSUserDefaults.standardUserDefaults().boolForKey("isUserLoggedIn")
        if(!isUserLoggedIn){
            var loginViewController = mainStoryboard.instantiateViewControllerWithIdentifier("loginview") as! LoginViewController

            window!.rootViewController = loginViewController
            window!.makeKeyAndVisible()

        }else{
            var protectedPage = mainStoryboard.instantiateViewControllerWithIdentifier("profail") as! ProfailViewController
            window!.rootViewController = protectedPage
            window!.makeKeyAndVisible()

        }

        */

        return true
    }

    func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool {

        return true 
    }
}
Run Code Online (Sandbox Code Playgroud)

MSh*_*hah 7

在 AppDelegate 中:-

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    // Override point for customization after application launch.
    let userLoginStatus = UserDefaults.standard.bool(forKey: "isUserLoggedIn")
    
if(userLoginStatus)
{
    
    let mainStoryBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
    .
    .

}
Run Code Online (Sandbox Code Playgroud)

在 LoginViewController 中(您在其中放置了用于登录验证的业务逻辑):-

UserDefaults.standard.set(true, forKey: "isUserLoggedIn")
UserDefaults.standard.synchronize()
Run Code Online (Sandbox Code Playgroud)

在 OtherViewController 中(其中 IBAction 用于注销):-

   UserDefaults.standard.set(false, forKey: "isUserLoggedIn")
   UserDefaults.standard.synchronize()
Run Code Online (Sandbox Code Playgroud)