gpt4 book ai didi

ios - 强制用户在导航之前在 TableView 中选择一行

转载 作者:行者123 更新时间:2023-11-30 12:13:39 25 4
gpt4 key购买 nike

我想确保用户在导航到另一个 Controller 之前从 TableView Controller 中显示的行列表(计划行)中选择一行。因此,在 didSelectRow 方法中,我将 bool 变量 ScheduleSelected 设置为 true。在我的 viewWillDisappear 中,我检查了 ScheduleSelected,它是错误的,然后我发出警报并重新加载表格 View ,这样我就留在同一个表格 View 上而不是导航。它无法正常工作,无论如何都会导航到另一个 Controller ,但确实会发出警报,但为时已晚。

如何强制用户在导航出当前表格 View Controller 之前选择一行?

也许有更简单的方法来代替这个繁琐的过程。请告诉我。

 override func viewWillDisappear(_ animated: Bool) {
if (scheduleSelected == false ) {
let alertController = UIAlertController(title: "UIAlertController", message: "Select Row", preferredStyle: .alert)
alertController.message = "Choose a Schedule"
alertController.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: nil))
present(alertController, animated: true, completion: nil)
self.tableView.reloadData()
}else {
let viewController = storyboard?.instantiateViewController(withIdentifier: "Profiles" )
UIApplication.shared.keyWindow?.rootViewController?.navigationController
let tabController = UIApplication.shared.keyWindow?.rootViewController as! ViewTabBarController
let navController = tabController.selectedViewController as! UINavigationController
navController.popToViewController(viewController!, animated: true)
}

}

最佳答案

如何使用按钮操作或使用 segue 导航出当前的 tableview Controller 。

如果您使用segue,那么您必须按如下方式处理此代码:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if (scheduleSelected == false ) {
let alertController = UIAlertController(title: "UIAlertController", message: "Select Row", preferredStyle: .alert)
alertController.message = "Choose a Schedule"
alertController.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: nil))
present(alertController, animated: true, completion: nil)
self.tableView.reloadData()
}
}

关于ios - 强制用户在导航之前在 TableView 中选择一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45703333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com