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")
}
当 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")
}