2016-06-12 10 views
0

Ich habe App gemacht, die Anmelde-und Anmeldefunktion enthalten. Wenn ich meine App zu diesem Zeitpunkt anmelde und andere Funktionen ausführe, läuft alles gut, aber wenn ich meine App stoppe und sie erneut starte, kann ich die Anmeldeseite erneut aufrufen, damit sich der Benutzer beim erneuten Start der App anmeldet. Unten ist mein Code, den ich in meiner App verwendet habe.Benutzer bleiben angemeldet ios app swift

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 
    } 
} 
+1

die obige Bedingung Check in "didFinishLaunchingWithOptions" von AppDelegate Klasse und auf der Grundlage der Bedingung festgelegt RootViewController –

+0

Ist es sicher, dass Sie 1 geschrieben habe zur Vorliebe? – Feldur

+0

Ich habe meine Frage aktualisiert, wenn Sie Hilfe @SandeepKumar – kvra13

Antwort

0

In "didFinishLaunchingWithOptions" Methode Prüfung für Benutzer oder nicht bereits angemeldet sind, wenn ja, dass das ProfailViewController zu Fenster RootViewController

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

    let isUserLoggedIn:Bool = NSUserDefaults.standardUserDefaults().boolForKey("isUserLoggedIn") 
    if(isUserLoggedIn) { 
     let mainStoryboard = UIStoryboard(name: "Main" , bundle: nil) 
     let protectedPage = mainStoryboard.instantiateViewControllerWithIdentifier("profail") as! ProfailViewController 
     window!.rootViewController = protectedPage 
     window!.makeKeyAndVisible() 
    } 
    return true 
} 
+0

funktioniert nicht tnxs für Ihre Hilfe – kvra13

4

Innerhalb AppDelegate gesetzt: -

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 
    // Override point for customization after application launch. 
    let userLoginStatus = NSUserDefaults.standardUserDefaults().boolForKey("isUserLoggedIn") 

if(userLoginStatus) 
{ 

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

} 

Innerhalb LoginViewController (Wo Sie die Geschäftslogik für die Login-Validierung platziert haben): -

NSUserDefaults.standardUserDefaults().setBool(true, forKey: "isUserLoggedIn") 
NSUserDefaults.standardUserDefaults().synchronize() 

Innerhalb OtherViewController (Wo IBAction für Logout gehalten wird): -

NSUserDefaults.standardUserDefaults().setBool(false, forKey: "isUserLoggedIn") 
    NSUserDefaults.standardUserDefaults().synchronize() 
Verwandte Themen