gpt4 book ai didi

iOS:didSelectRowAt 索引路径仅适用于第二次点击

转载 作者:行者123 更新时间:2023-11-28 07:33:10 24 4
gpt4 key购买 nike

我正在努力解决我的 xcode 项目中的一个问题。我在 TableView 中显示自定义单元格并使用 didSelectRowAt indexPath: 显示详细 View 。它按照我想要的方式工作,但奇怪的是只有在第二次点击时。

我对编程还很陌生,非常感谢你的帮助。非常感谢!

我检查过我没有意外地使用 didDeselectRow at。我还通过 stackoverflow 尝试找到解决方案,这是我能找到的最接近我的问题的解决方案。但我正在使用 didSelectRow at

//这是我在用户点击单元格时的代码:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

// Pop Up Variables

var id:String = tasks[indexPath.row].task_id!
var title:String = tasks[indexPath.row].task_title!
var type:String = tasks[indexPath.row].task!
var desc:String = tasks[indexPath.row].task_desc!
var action:String = "Dismiss"


present(detailVC!, animated: true, completion: {
self.detailVC!.setPopup(withTaskId: id, withTitle: title, withType: type, withDesc: desc, withAction: action)
})



}

//这里只是一个注释,我正在文档顶部设置切换到另一个 View Controller 。

//显示弹窗 var detailVC:TaskDetailViewController?

override func viewDidLoad() {
super.viewDidLoad()

// Set up the task detail view controller
detailVC = storyboard?.instantiateViewController(withIdentifier: "TaskDetailVC") as! TaskDetailViewController?
detailVC?.delegate = self
detailVC?.modalPresentationStyle = .overCurrentContext

// Conform to the table view protocols
tableView.dataSource = self
tableView.delegate = self

// Set Self as delegate for model and call getTasks

// Get the Tasks from the Task Model
model.delegate = self
model.getTasks()


}

详细 View 只有在我第二次点击一行后才会出现。不是第一次?

最佳答案

几年前我遇到过这个问题,不知道它今天仍然存在。

我通过使用 GCD 将所有逻辑封装在主线程中的 didSelectRowAt 中解决了这个问题。您可以检查这些:

https://stackoverflow.com/a/27907119/6642629

https://stackoverflow.com/a/26183438/6642629

您可以尝试以下方法:

swift 4

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

DispatchQueue.main.async {

var id:String = tasks[indexPath.row].task_id!
var title:String = tasks[indexPath.row].task_title!
var type:String = tasks[indexPath.row].task!
var desc:String = tasks[indexPath.row].task_desc!
var action:String = "Dismiss"

present(detailVC!, animated: true, completion: {
self.detailVC!.setPopup(withTaskId: id, withTitle: title, withType: type, withDesc: desc, withAction: action)
})
}
}

关于iOS:didSelectRowAt 索引路径仅适用于第二次点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54088597/

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