为啥完成不起作用?完成问题
Posted
技术标签:
【中文标题】为啥完成不起作用?完成问题【英文标题】:Why is the completion not working? completion issue为什么完成不起作用?完成问题 【发布时间】:2019-01-29 12:49:39 【问题描述】:为什么完成不工作?
警报出现后,它不会转换到另一个 viewController
self.present(self.alertController2, animated: true, completion:
self.performSegue(withIdentifier:"goToLogin", sender: self)
)
【问题讨论】:
您是否检查了标识符:您是否在 Interface Builder 中设置了它的 ID?如果是,则必须完全相同,包括小写/大写 但是按照您的方式在完成中使用 segue 并不是一个好主意:警报会显示,但在触发 segue 时会立即消失。 我已经检查了 ID 是否相同 【参考方案1】:Self.present
用于将此操作添加到视图中。您需要将此代码添加到您的 handler
处理程序中,意思是 It means what will I do when you click OK
let alertbutton = UIAlertAction(title: "OK", style: .destructive, handler:
(UIAlertAction) in
self.performSegue(withIdentifier: "your id", sender: self)
)
完整示例:
let alert = UIAlertController(title: "Its empty", message: "Going another view", preferredStyle: .alert)
let alertaction = UIAlertAction(title: "OK", style: .destructive, handler: (UIAlertAction) in
self.performSegue(withIdentifier: "your segue id", sender: self)
)
alert.addAction(alertaction)
self.present(alert, animated: true, completion: nil)
【讨论】:
【参考方案2】:您应该先编写代码进入新视图代码运行,然后在主线程中显示警报以显示警报。
DispatchQueue.main.async
// AlertView.showAlert(title: Messages.Network.title, message: Messages.Network.message)
//
【讨论】:
以上是关于为啥完成不起作用?完成问题的主要内容,如果未能解决你的问题,请参考以下文章