Я пытаюсь отобразить два разных предупреждения сразу после друг друга. Первый - индикатор загрузки. Второе - это предупреждение, которое сообщает пользователю, что то, что он делал, было успешным или нет после сообщения UDP. Я упростил код для целей презентации.
Моя проблема в том, что, хотя я опускаю loadingAlert, прежде чем вызвать второе предупреждение, я все равно получаю сообщение об ошибке:
Предупреждение. Попытайтесь представить UIAlertController в ViewController во время презентации!
Мое второе предупреждение никогда не отображается.
Вот мой код 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
}
Каков наилучший способ сделать это?