执行segue

时间:2016-07-26 07:25:50

标签: ios xcode multithreading segue dispatch-async

从我最初的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会在即将发布的版本中抛出异常)。

0 个答案:

没有答案