Swift 呈现警报控制器后继续在 TableView 中流动(didSelectRowAt IndexPath)

Swift Continue Flow in TableView(didSelectRowAt IndexPath) after presenting Alert Controller

condition 不等于 1 时,当用户点击 tableView 中的一行时,我想呈现一个 UIAlertController。警报解除后,我想要 didSelectRowAt IndexPath执行。然而,流动停止了。我假设我在 completion: 中需要 nil 以外的东西,但我很困惑。

我是这样介绍 Alert Controller 的:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    if condition != 1 {
        let alertController = UIAlertController(title: "Title", message: "message", preferredStyle: .alert)

        let defaultAction = UIAlertAction(title: "OK", style: .default, handler: nil)
        alertController.addAction(defaultAction)
        present(alertController, animated: true, completion: nil)
        condition = 1
    }

    \remaining code to be executed
}

您可以将要执行的代码放在defaultAction 的动作处理器中。因此代码将在按下确定按钮后执行。如果将它放在 present() 方法完成中,它将在出现警报后准确执行。

let alert = UIAlertController(title: "Hello", message: "Nai", preferredStyle: .alert)
    alert.addAction(UIAlertAction(title: "Ok", style: .default, handler: { (action) in
        print("Executed after ok tapped")
    }))
    present(alert, animated: true) {
        print("Executed when its presented")
    }