我使用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
}
}
}
再次感谢。
答案 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