tableview项目在显示选定项目siwift之前循环遍历所有项目

时间:2018-06-22 09:48:12

标签: ios swift

我有一个应用程序,可以通过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)

    }

1 个答案:

答案 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。