从我最初的View Controller,我希望能够转到另一个视图控制器。然而,第二个视图控制器需要几秒钟才能加载,我希望我的源视图控制器在加载时显示动画。
执行segue会阻止其余代码运行,但是我无法将其放在后台线程中,因为它在技术上更新了UI(当我尝试时Xcode给了我很多警告)。
动画也会更新UI,这意味着我无法将其放在自己的单独线程中。
我可以用另一种方法来实现这个目标吗?
class LaunchViewController: UIViewController {
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
UIView.animateWithDuration(5, animations: {
//Perform animation that updates the UI
}, completion: nil)
dispatch_async(dispatch_get_main_queue()) {
self.performSegueWithIdentifier("seg", sender: self)
}
}
P.S。当我将performSegueWithIdentifier
放在后台线程中时,它工作得很好。但就像我说的那样,我收到了很多错误(Xcode会在即将发布的版本中抛出异常)。