Ios 自动登录时阻止显示登录屏幕

Ios 自动登录时阻止显示登录屏幕,ios,swift,Ios,Swift,我已经在我的应用程序中实现了自动登录到链接到登录视图控制器的viewcontroller中。然而,如下所示,故事板在启动器屏幕之后首先导航到登录屏幕。当在密钥库中找到凭据时,应用程序将自动登录,但在继续之前,登录屏幕仍将闪烁 如果用户凭据已在密钥库中并直接导航到显示视图控制器,如何确保登录屏幕不会出现 将用户详细信息存储在登录屏幕中 将此函数放入appDelegate中 然后调用ViewDidFinishLauchingWithOption(在AppDelegate中)中的函数 对@Kerby

我已经在我的应用程序中实现了自动登录到链接到登录视图控制器的viewcontroller中。然而,如下所示,故事板在启动器屏幕之后首先导航到登录屏幕。当在密钥库中找到凭据时,应用程序将自动登录,但在继续之前,
登录
屏幕仍将闪烁

如果用户凭据已在密钥库中并直接导航到
显示视图控制器
,如何确保登录屏幕不会出现

  • 将用户详细信息存储在登录屏幕中
  • 将此函数放入appDelegate中
  • 然后调用ViewDidFinishLauchingWithOption(在AppDelegate中)中的函数

  • 对@Kerby Jean答案的补充。首先删除情节提要中的入口点,在应用程序代理中的
    didfishlaunchingwithoptions
    方法中按代码分配该点,如下所示:

    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()
    

    显示完整StroyLoad场景我尝试了此操作,结果出现错误:
    未能实例化UIMainstryBoardFile“Main”的默认视图控制器-可能未设置指定的入口点?
    是的,我总是看到该警告,但我看不到这会影响性能。
     func userIsLoggedIn() {
                  let userName = NSUserDefaults.standardUserDefaults().stringForKey("userName")
                  if userName != nil {
        //Navigate to Reveal View Controller
                    }
                }
    
    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
            // Override point for customization after application launch.
    userIsLoggedIn()         
    return true
    
    }
    
    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()