gpt4 book ai didi

swift - 以编程方式从主线程以外的其他地方选择 UITableView 行

转载 作者:行者123 更新时间:2023-11-28 06:05:54 25 4
gpt4 key购买 nike

我有一个 UITableView Controller ,它在 viewDidLoad 中异步发出网络请求,该请求回调到 UITableView 方法。如果数据包含用户预选的匹配信息,我想前进到下一个 View Controller 。这是我在回调中用于前进到下一个 View Controller 的代码:

 //search for row if it exists, then:
let indexPath = IndexPath(row: r, section: 0)
DispatchQueue.main.async(execute: {
self.tableView.reloadData()
self.tableView.selectRow(at: indexPath, animated: false,
scrollPosition: UITableViewScrollPosition.none)
self.tableView(self.tableView, didSelectRowAt: indexPath)
})

当我调用 self.tableView(didSelectRowAt: indexPath) 时,我遇到了运行时故障,并且堆栈跟踪不是很有帮助。在以编程方式选择 UITableView 的一行之前,我需要设置什么吗?

TIA

最佳答案

如果你想以编程方式触发对 tableView 中一行的选择,你必须这样调用它:

self.tableView.delegate?.tableView!(self.tableView, didSelectRowAt: indexPath)

您的 tableView 没有方法 didSelectRowAt,委托(delegate)有,并且在上面调用它。

另外不要忘记首先将 tableView 的委托(delegate)设置为当前 View Controller ,如果这是您想要的委托(delegate)。

self.tableView.delegate = self

关于swift - 以编程方式从主线程以外的其他地方选择 UITableView 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48246494/

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