2016-05-15 5 views
2

Ich habe die automatische Anmeldung in meiner App in den Viewcontroller implementiert, der mit dem Login View Controller verbunden ist. Wie unten angegeben, navigiert das Storyboard jedoch zunächst nach dem Launcher-Bildschirm zum Anmeldebildschirm. Wenn sich im Keystore Anmeldeinformationen befinden, wird die App automatisch angemeldet, aber der Bildschirm Login blinkt noch, bevor er weitergeht.Login verhindern Bildschirm wird angezeigt, wenn automatisches Anmelden

enter image description here

Wie kann ich den Login-Bildschirm sicherzustellen, wird nicht angezeigt, wenn die Benutzerdaten bereits in den Schlüsselspeicher sind und navigieren Sie direkt zur Reveal View Controller?

+0

zeigen Sie Ihre volle stroyboad Szene –

Antwort

1
  1. Speichern Sie die Benutzerdaten in Ihrem Login
NSUserDefaults.standardUserDefaults().setObject("\(userNameTxtField.text!)", forKey: "userName") 
NSUserDefaults.standardUserDefaults().synchronize() 
  1. Setzen Sie diese Funktion in Ihrem AppDelegate
func userIsLoggedIn() { 
       let userName = NSUserDefaults.standardUserDefaults().stringForKey("userName") 
       if userName != nil { 
    //Navigate to Reveal View Controller 
       } 
      } 
  1. dann die Funktion in ViewDidFinishLauchingWithOption nennen (In AppDelegate)
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 
     // Override point for customization after application launch. 
userIsLoggedIn()   
return true 

} 
2

Complement an die @Kerby Jean Antwort. Zuerst den Einstiegspunkt in das Storyboard entfernen, weisen Sie den Punkt durch den Code in AppDelegate bei didFinishLaunchingWithOptions Methode, etwa wie folgt:

UIWindow * window 

var storyboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil) 

//Slect initial viewController 
self.window = UIWindow(frame: UIScreen.mainScreen.bounds) 
UIViewController * viewController 
var preferences: NSUserDefaults = NSUserDefaults.standardUserDefaults() 
var userId: String = preferences["userId"] 

if userId != nil { 
    viewController = storyboard.instantiateViewControllerWithIdentifier("NavigationController") 
} 
else { 
    viewController = storyboard.instantiateViewControllerWithIdentifier("LoginViewController") 
} 
self.window.rootViewController = viewController 
self.window.makeKeyAndVisible() 
+0

ich versucht, dies ist der Fehler in Folge: 'konnte nicht instanziiert der Standard-View-Controller für UIMainStoryboardFile 'Main' - vielleicht ist der angegebene Einstiegspunkt nicht gesetzt? ' – Sauron

+0

Ja, ich sehe immer diese Warnung, aber ich sehe nicht, dass das die Leistung beeinflusst. –

Verwandte Themen