【发布时间】:2019-01-14 18:02:36
【问题描述】:
我正在尝试一个接一个地显示两个不同的警报。第一个是加载指示器。第二个是警报,告诉用户他们所做的事情是否成功或没有遵循 UDP 消息。出于演示目的,我已经简化了代码。
我的问题是,虽然我在调用第二个警报之前关闭了 loadingAlert,但我仍然收到错误:
警告:在演示过程中尝试在 ViewController 上演示 UIAlertController!
我的第二个警报从未显示。
这是我的 Swift 4 代码:
func getUpdate()
{
let loading = alert(title: "Performing Task...")
DispatchQueue.global(qos: .userInitiated).async {
let server:UDPServer=UDPServer(address:"0.0.0.0", port:5006)
let (data,_,_) = server.recv(1024)
DispatchQueue.main.async
{
loading.dismiss(animated: false, completion: nil)
OperationQueue.main.addOperation
{
alert(title: "How can I show this alert?")
}
}
}
}
func alert(title:String) -> UIAlertController
{
let alertController = UIAlertController(title: title, message: "", preferredStyle: UIAlertControllerStyle.alert)
...
rootViewController?.present(alertController, animated: true, completion: nil)
return alertController
}
最好的方法是什么?
【问题讨论】: