2016-11-04 87 views
0

我試圖在首次啓動應用程序時在黑屏上運行飛濺動畫,然後轉換到初始視圖控制器。爲此,我將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 
} 

回答

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

let initialViewController = storyboard.instantiateViewControllerWithIdentifier("HomeView") as UIViewController 

self.window?.rootViewController = initialViewController 
self.window?.makeKeyAndVisible() 

這臺故事板的一個實例,然後爲你做你的launchscreen,只需設置VC是最初的這。

+0

謝謝你完美的作品! – dulongj