performSegueWithIdentifier保证执行后的方法?

时间:2016-01-25 07:14:07

标签: swift uiviewcontroller storyboard uikit

简单测试显示performSegueWithIdentifier可以执行后的方法,但做出这个假设是否安全?

Apple文档没有说明这一主题。

例如,下面代码块中的print语句在测试中执行。但是,假设您要将某些内容记录到在线分析服务中,或者执行比打印语句更复杂的操作?您是否可以在performSegueWithIdentifier保证执行后假设语句,或者您应该在performSegueWithIdentifier之前放置这些代码行?

    performSegueWithIdentifier(TestSegue, sender: self)
    print("YO YO YO")

1 个答案:

答案 0 :(得分:0)

好吧,

performSegueWithIdentifier(TestSegue, sender: self)

实际上是你在函数中调用的最后一件事。如果在函数中进行的其他调用没有结束,它将永远不会转换你直到一切都执行。例如,假设您有以下代码:

@IBAction func button1Pressed(sender: AnyObject) {


    performSegueWithIdentifier("toIMG", sender: nil)

    let temp = imageViewController()
    temp.printingStuff()
}

,imageViewController看起来像这样:

class imageViewController: UIViewController {

[....]

func printingStuff(){
    while true{
    print("I love pizza")

    }

}

它实际上会保持打印,永远不会转换到下一个视图。