当用户未正确输入所有详细信息时,我会弹出警报。我想让它在用户解除警报时回弹到之前的ViewController。
它看起来像这样
func errorAlert (errorMessage: String?) {
let alert = UIAlertController (title: "Error message", message: errorMessage, preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: .cancel, handler: nil))
self.present(alert, animated: true, completion: nil)
popThisView()
SVProgressHUD.dismiss()
}
func popThisView() {
self.dismiss(animated: false, completion: nil)
self.navigationController!.popToRootViewController(animated: true)
}
但是XCode给了我这个错误:
popToViewController:transition:call on 现有的过渡或演示正在发生;该 导航堆栈不会更新。
答案 0 :(得分:2)
这样做,
let alert = UIAlertController (title: "Error message", message: errorMessage, preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: .cancel, handler:{ (alertOKAction) in
self.popThisView()
}))
self.present(alert, animated: true, completion: nil)
SVProgressHUD.dismiss()
答案 1 :(得分:0)
UIAlertAction对象有一个动作处理程序,因此您可以在该处理程序中处理动作:
let action = UIAlertAction(title: "OK", style: . cancel, handler: {(alert: UIAlertAction!) in
DispatchQueue.main.async( execute: {
self.popThisView()
})
})