如何获得didSelectRowAt IndexPath来区分各个部分?

时间:2016-11-16 23:30:34

标签: ios swift uitableview

我有一个设置,它在tableViewController中传输信息(所选单元格的索引),以便目标UIViewController可以通过从数组中调用适当的索引来显示标签上的一些文本信息。一切正常。但是,有3个部分,我希望目标UIViewController知道选择了哪个部分。 (即,选择第1部分中的第一个单元格,第2部分中的第一个单元格都返回索引0,但我需要它是可微分的)。我想传递所选部分的值(然后在目标UIViewController中设置if / else语句),但我不确定如何正确地执行此操作。 以下是我对非差异化索引传递的当前代码:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        let indexPath = self.tableView.indexPathForSelectedRow
        let rowSelectedd = indexPath?.row
        let destViewController: Controller = segue.destination as! Controller
        destViewController.rowSelected = rowSelectedd! 
    }

    override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        performSegue(withIdentifier: "rowSelected", sender: rowSelectedd)
    }

基本上,我如何传递所选单元格部分的值?

1 个答案:

答案 0 :(得分:1)

如果目标控制器同时需要所选行的行和部分,则使用IndexPath属性而不是Int属性并传递整个indexPath而不是indexPath.row 1}}。

但为什么目标控制器需要知道索引路径?这是没有意义的。为什么不将该索引路径的实际数据(从数据模型)传递到目标控制器?