暂停功能直到用户输入

时间:2015-03-03 05:39:09

标签: xcode swift ios8 uialertcontroller

我有一个函数,它根据用户通过UIAlertController的输入返回一个Bool值。由于功能的设置,我必须在用户响应代码之外返回Bool。我有一个带有Bool值的变量,直到它返回,但由于整个函数在用户响应之前进行评估,因此响应无效。有没有办法阻止函数继续进行,直到给出响应?

1 个答案:

答案 0 :(得分:2)

我假设您的代码与

类似
let alert = UIAlertController(title: "test", message: "test", preferredStyle: UIAlertControllerStyle.Alert)
let ok = UIAlertAction(title: "OK", style: UIAlertActionStyle.Default) { (action: UIAlertAction!) -> Void in
    println("EXECUTE CODE HERE")
}
alert.addAction(ok)

self.presentViewController(alert, animated: true, completion: nil)

您应该在回调块EXECUTE CODE HERE中调用该函数,而不是尝试暂停执行代码(这会冻结整个应用程序)。

如果函数中的某些代码需要在警报之前执行,那么只需将代码分成两个函数,或者只是放置在回调块内返回后应该执行的代码