如何唯一标识UITableView中的每个单元格

时间:2018-09-27 05:15:20

标签: ios arrays swift uitableview segue

我有一个UITableView,我想和另一个viewcontroller进行连接,我需要行号,以便可以从数组中选择一个字符串,以便可以在下一个视图控制器,我现在有这段代码。

let tableFrontView = segue.destination as! FCTableFrontViewController
tableFrontView.frontText = path[FlashCardsTableViewCell.init().tag].flashCardFront

FlashCardsTableViewCell.init().tag当前正在返回一个int以用于测试目的,尽管我想知道可以用什么替换它来获取用户选择的行号。 谢谢

3 个答案:

答案 0 :(得分:0)

使用TableView的委托方法:

 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
 // indetify cell using indexPath.row attribute
}

答案 1 :(得分:0)

您可以尝试这样:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    let tableFrontView = segue.destination as! FCTableFrontViewController
    let selectedIndexPath = tblView.indexPathForSelectedRow
    let selectedRow = (selectedIndexPath?.row)!
    print(selectedRow)
}

答案 2 :(得分:0)

我假设您正在编写sub()中显示的代码段?

如果是这种情况,请转到执行segue的位置,这很可能在prepare(for:)委托方法中。如果没有这样的方法,则应该实现它。

didSelectedRowAtIndexPath

现在替换您作为func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { performSegue(withIdentifier: "showTableFrontVC", sender: nil) } 传递的内容,并替换为sender

indexPath.row

现在在performSegue(withIdentifier: "showTableFrontVC", sender: indexPath.row) 中,您可以将发件人作为prepare(for:)进行包装:

Int