【发布时间】:2018-07-17 12:52:55
【问题描述】:
我正在尝试使用按钮删除选定的行。因此我需要 indexPath.row,我将值写入全局变量,但是当我在按钮中访问它时,它返回 nil 给我。
var selectedRow = ""
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let selectedEvent = myConversationRows[indexPath.row]
selectedRow = selectedEvent.id!
}
@IBAction func cancelConversation(_ sender: Any) {
print("selected")
print(self.selectedRow)
}
我猜当我点击按钮时 didSelectRowAt 没有被触发。我尝试了不同的方法,但都没有奏效。
【问题讨论】:
-
首先需要选择一行,第二个selectedEvent.id可能为nil
-
制作一个自定义 UITableViewCell,在该单元格中从您的数组中有一个模型对象,在 UITableViewCell 内的 IBAction 中,获取 id 并使用协议调用控制器。在控制器的协议覆盖中,从数组中移除 id 并重新加载 tableView。
-
这绝对应该是自定义单元格,所以在 cellForRowAt 中将目标添加到按钮。如果您有兴趣,我可以详细说明并为您编写解决方案。
标签: swift uitableview indexpath