Swift 在 AppDelegate 中延迟设置 rootViewController

Swift sets rootViewController in AppDelegate with delay

我想在 AppDelegate 中设置初始 ViewController。如:

 if jsonResult["result"]!.intValue == 1 {
     let entryPoint: UITabBarController = mainStoryboard.instantiateViewControllerWithIdentifier("TabBarController") as! UITabBarController
     self.window?.rootViewController = entryPoint
} else {
     let entryPoint: WelcomeController = mainStoryboard.instantiateViewControllerWithIdentifier("WelcomeController") as! WelcomeController
     self.window?.rootViewController = entryPoint
}

它可以工作,但首先它会打开我在故事板中设置为初始的视图控制器,稍后它会以编程方式切换。

那么,如何在不显示我的第一个控制器的情况下直接切换我的控制器?我做错了什么?

加罗瓦的评论:

...如果 由于已完成的请求出错而没有结果,会发生什么情况? Force-unwrapping ! 的结果会使您的应用程序崩溃。您应该查看 Grand Central Dispatch 电话。开始一个异步调用来获取你的 JSON 并在主线程上进行回调以在完成时更新你的 UI 并让你的 UI 在等待时直接加载到某个 "waiting" 状态在 JSON.

的后台