Swift 如何将数据从表视图单元类传递回具有表视图的视图控制器?
我有一个带有tableView和自定义单元格的视图控制器。我想学习如何设置它,以便在单击tableviewCells中的按钮时,它们可以操纵具有tableview的视图控制器中的元素Swift 如何将数据从表视图单元类传递回具有表视图的视图控制器?,swift,uitableview,Swift,Uitableview,我有一个带有tableView和自定义单元格的视图控制器。我想学习如何设置它,以便在单击tableviewCells中的按钮时,它们可以操纵具有tableview的视图控制器中的元素 多亏了有帮助的贡献者,我了解到答案是有两种方法可以让按钮从tableViewCell自定义单元格类中单击,并与具有tableView的viewController交互。您可以使用委托/协议,也可以使用闭包。我提供了一个youTube视频的链接,该视频解释了委托方法,作为我下面问题的答案,下面的另一张海报提供了一个使
多亏了有帮助的贡献者,我了解到答案是有两种方法可以让按钮从tableViewCell自定义单元格类中单击,并与具有tableView的viewController交互。您可以使用委托/协议,也可以使用闭包。我提供了一个youTube视频的链接,该视频解释了委托方法,作为我下面问题的答案,下面的另一张海报提供了一个使用闭包的非常简洁的示例。使用闭包将按钮动作从单元格回调到视图控制器 CustomCell
class CustomCell : UITableViewCell {
var ClousureBtnActionHandler:((_ sender: AnyObject) -> Void)?
@IBAction func btnInfoActionHandler(_ sender : AnyObject) {
if self.ClousureBtnActionHandler != nil {
self.ClousureBtnActionHandler!(sender)
}
}
}
视图控制器
TableView数据源
多亏了这里的指导,我找到了这个youTube教程,我发现它非常有帮助,帮助我了解如何设置代理和协议,作为让cell类指导view controller我们希望它做什么的解决方案
您可以将代理添加到UITableViewCell子类或closureRelated:使用正确的格式编辑问题。
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")
}
}