调用UIAlertController并等待用户交互

时间:2015-08-24 19:39:02

标签: ios swift uialertcontroller

我知道,UIAlertController是异步的。但我正在寻找一种“封锁”解决方案。阻止我的意思是,在用户点击按钮后应该执行以下代码。

我的“AlertBox”非常简单,它放在一个“全局帮助器”文件中,因为我使用了很多这些AlertBox:

func showAlertBoxWithOK(headline:String, message:String, OkButtonText:String, viewController:UIViewController) {

    let alertController = UIAlertController(title: headline, message: message, preferredStyle:UIAlertControllerStyle.Alert)

    alertController.addAction(UIAlertAction(title: OkButtonText, style: UIAlertActionStyle.Default)
    { action -> Void in
        return
    })
    viewController.presentViewController(alertController, animated: true, completion: {
        return
    })
}

在视图中,我称之为:

println ("this is before the AlertBox")
showAlertBoxWithOK("Sample", "Hello World.", "OK", self)
println ("this is after the AlertBox")

代码到第1行并打印文本。 接下来,AlertBox出现了。 但是:现在,在用户确认警报之前,第3行会被执行。

有没有办法,在用户确认AlertBox之前停止代码处理?就像VisualBasic中一个非常简单的“MessageBox”,它阻止了UI和代码?或者它可以像C#中的await那样完成吗?

我的问题是,这是一个极端的长代码,有很多AlertBox来显示......

修改

我们说这是我的代码:

var a = 0
a = a + 5
showAlertBox("5 reached" ...)
a = a + 10
a = a + 15
showAlertBox("30 reached" ...)
a = a + 20
a = a + 25
showAlertBox("75 reached" ...)

等等。我不希望,代码向前迈进,同时显示AlertBox。而且由于计算(简化为a = ...所示),很难将所有代码划分为块。

0 个答案:

没有答案