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.
的后台
我想在 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.