我有一个带有tableView和自定义单元格的视图控制器。我想学习如何设置它,以便在单击tableviewCells中的按钮时,它们可以操纵具有tableview的视图控制器中的元素。
多亏了有帮助的贡献者,我才知道答案是,有两种方法可以使来自tableViewCell自定义单元类的按钮的单击与具有tableView的viewController进行交互。您可以使用委托/协议,也可以使用闭包。我提供了一个youTube视频的链接,该视频解释了Delegate方法是下面我自己的问题的答案,而下面的另一张海报则提供了一个使用闭包的简洁示例。
答案 0 :(得分:1)
使用闭包从单元格回调按钮动作以查看控制器。
CustomCell
class CustomCell : UITableViewCell {
var ClousureBtnActionHandler:((_ sender: AnyObject) -> Void)?
@IBAction func btnInfoActionHandler(_ sender : AnyObject) {
if self.ClousureBtnActionHandler != nil {
self.ClousureBtnActionHandler!(sender)
}
}
}
ViewController
TableView数据源
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell : CustomCell = tableView.dequeueReusableCell(withIdentifier: "CustomCell") as! CustomCell
cell.ClousureBtnActionHandler = { sender in
print("Do any thing with your button action")
}
}
答案 1 :(得分:0)
感谢这里的指导,我找到了这个youTube教程,对如何设置代表和协议作为解决方案,对让单元类指示视图控制器我们希望它做什么的解决方案,我发现非常有帮助。