我有一个应用程序,可以通过Alamofire接收信息,并将其传递到表格视图中。我可以进一步获得有关所选产品的更多详细信息,这些细节将传递给视图控制器。这项工作正常,但是我现在遇到的问题是,单击单元格以获取有关特定项目的更多详细信息时,它始终必须在所有其他项目中进行导航。如果单击单元格5上的项目,则详细视图控制器将从项目1,2,3,4然后从项目5开始显示,尽管它可以快速完成。我相信,一旦我关闭模态
@IBAction func closeModalPressed(_ sender: Any) {
self.dismiss(animated: true, completion: nil)
}
假定删除先前的详细信息。如何使它显示第5项而不先循环1-4次
已选择行
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let selected = Services.instance.items[indexPath.row]
Services.instance.selected = selected
let index = IndexPath(row: indexPath.row, section: 0)
tableView.reloadRows(at: [index], with: .none)
tableView.selectRow(at: index, animated: false, scrollPosition: .none)
NotificationCenter.default.post(name: NOTIFY, object: nil)
performSegue(withIdentifier: TO_DETAILS, sender: nil)
}
答案 0 :(得分:0)
我不认为您正在执行任何api调用或didSelectRowAt中的任何操作,我建议您尝试执行以下操作
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let selected = Services.instance.items[indexPath.row]
Services.instance.selected = selected
NotificationCenter.default.post(name: NOTIFY, object: nil)
performSegue(withIdentifier: TO_DETAILS, sender: nil)
}
您在此处不必要地重新加载行,并要求表视图再次选择同一行,从而最终调用didSelectRowAt。