Swift 为什么竣工不起作用?完成问题

Swift 为什么竣工不起作用?完成问题,swift,completionhandler,Swift,Completionhandler,为什么竣工不起作用 警报出现后,它不会转换到另一个viewController self.present(self.alertController2, animated: true, completion: { self.performSegue(withIdentifier:"goToLogin", sender: self) }) 您应该首先编写代码,移动到新的视图代码运行,然后在主线程中显示警报以显示警报 DispatchQu

为什么竣工不起作用

警报出现后,它不会转换到另一个viewController

self.present(self.alertController2, animated: true, completion:  {                          
    self.performSegue(withIdentifier:"goToLogin", sender: self)
})

您应该首先编写代码,移动到新的视图代码运行,然后在主线程中显示警报以显示警报

DispatchQueue.main.async {
//                    AlertView.showAlert(title: Messages.Network.title, message: Messages.Network.message)
//                }

Self.present
用于将此操作添加到视图中。您需要将此代码添加到您的
处理程序中
handler mean
它表示当您单击“确定”时我将执行什么操作

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)

是否检查了标识符:是否在Interface Builder中设置了其ID?如果是这样的话,它必须是完全相同的,包括小写/大写,但让segue按您的方式完成并不是一个好主意:警报将显示,但在触发segue时会立即消失。我已经检查了相同的ID