如何使用Swift知道在tableView中使用哪个单元格

时间:2017-10-07 17:02:00

标签: swift uitableview segue

我使用tableView显示名称列表。当用户点击其中一个单元格时,会出现一个弹出窗口,显示更多细节。我正在使用此功能来检查用户点击的单元格。

var selectedCell: Int?

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    print("This cell from the chat list was selected: \(indexPath.row)")
    selectedCell = indexPath.row
}

不幸的是,它似乎给出了0到2之间的随机数(我目前有三个显示的单元格)。

你知道我怎么知道敲了哪个牢房吗?

提前谢谢。

编辑:

我明白什么是误导我的结果。

我正在使用此函数将选择的单元格推送到另一个视图控制器(名为ConversationViewcontroller)。但是,在tableView函数之前调用segue函数,因此segue会推送先前选择的单元格。我怎么能纠正这个?

以下是我的segue的代码:

//SEGUE: Cell was selected: pass chatID
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if segue.identifier == "OpenChat" {
            if let toViewController = segue.destination as? ConversationViewController {
                toViewController.chatIdentifier = selectedCell
            }
        }
    }

再次感谢。

1 个答案:

答案 0 :(得分:2)

试试这个

var selectedCell: IndexPath

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    print("This cell from the chat list was selected: \(indexPath.row)")
    selectedCell = indexPath
}

如果您想使用IndexPath

self.selectedCell?.row