飞溅动画完成后更改视图控制器
Change view controller after splash animation finishes
我正在尝试在应用程序首次启动时 运行 在黑屏上播放启动动画,然后 运行 进入初始视图控制器。为此,我将 launchscreen.storyboard 视图控制器设置为黑色,然后在我创建的 didFinishLaunchingWithOptions 中将动画 运行 设置为 appDelegate 中的子视图(如下所示)。目前,该应用程序在黑屏上启动,动画淡入、休眠和淡出正确,但即使初始视图控制器设置为空白背景,也会停留在黑屏上。我已经尝试了多个完成块来将应用程序发送到下一个视图控制器,例如删除子视图或尝试再次使用 rootViewController 强制它但没有这样的运气。我很确定这只是我需要的一行代码,但我似乎无法弄明白。
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
self.window = UIWindow(frame: UIScreen.main.bounds)
let imageView = UIImageView(frame: self.window!.frame)
imageView.loadGif(name: "splashanimation")
imageView.alpha = 0.0
self.window!.addSubview(imageView)
let emptyView = UIViewController()
self.window?.rootViewController = emptyView
self.window!.makeKeyAndVisible()
UIView.animate(withDuration: 1.0, animations: {imageView.alpha = 1}, completion: { (value: Bool) in UIView.animate(withDuration: 1.0, animations: {sleep(UInt32(1.5))}, completion: { (value: Bool) in UIView.animate(withDuration: 2.0, animations: {imageView.alpha = 0}, completion: {
** SOMEHOW OPEN THE FIRST VIEW CONTROLLER **
})})})
UIApplication.shared.isStatusBarHidden = true
return true
}
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let initialViewController = storyboard.instantiateViewControllerWithIdentifier("HomeView") as UIViewController
self.window?.rootViewController = initialViewController
self.window?.makeKeyAndVisible()
这会设置故事板的一个实例,然后就像您对 launchscreen
所做的那样,只需将 VC 设为初始值即可。
我正在尝试在应用程序首次启动时 运行 在黑屏上播放启动动画,然后 运行 进入初始视图控制器。为此,我将 launchscreen.storyboard 视图控制器设置为黑色,然后在我创建的 didFinishLaunchingWithOptions 中将动画 运行 设置为 appDelegate 中的子视图(如下所示)。目前,该应用程序在黑屏上启动,动画淡入、休眠和淡出正确,但即使初始视图控制器设置为空白背景,也会停留在黑屏上。我已经尝试了多个完成块来将应用程序发送到下一个视图控制器,例如删除子视图或尝试再次使用 rootViewController 强制它但没有这样的运气。我很确定这只是我需要的一行代码,但我似乎无法弄明白。
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
self.window = UIWindow(frame: UIScreen.main.bounds)
let imageView = UIImageView(frame: self.window!.frame)
imageView.loadGif(name: "splashanimation")
imageView.alpha = 0.0
self.window!.addSubview(imageView)
let emptyView = UIViewController()
self.window?.rootViewController = emptyView
self.window!.makeKeyAndVisible()
UIView.animate(withDuration: 1.0, animations: {imageView.alpha = 1}, completion: { (value: Bool) in UIView.animate(withDuration: 1.0, animations: {sleep(UInt32(1.5))}, completion: { (value: Bool) in UIView.animate(withDuration: 2.0, animations: {imageView.alpha = 0}, completion: {
** SOMEHOW OPEN THE FIRST VIEW CONTROLLER **
})})})
UIApplication.shared.isStatusBarHidden = true
return true
}
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let initialViewController = storyboard.instantiateViewControllerWithIdentifier("HomeView") as UIViewController
self.window?.rootViewController = initialViewController
self.window?.makeKeyAndVisible()
这会设置故事板的一个实例,然后就像您对 launchscreen
所做的那样,只需将 VC 设为初始值即可。