首页 > 解决方案 > 如何将数据从表格视图单元类传递回带有表格视图的视图控制器?

问题描述

我有一个带有 tableView 和自定义单元格的视图控制器。我想学习如何设置它,以便在单击 tableviewCells 中的按钮时,它们可以操作具有 tableview 的视图控制器中的元素。

感谢有帮助的贡献者,我了解到答案是有两种方法可以让从 tableViewCell 自定义单元格类中单击按钮与具有 tableView 的 viewController 交互。您可以使用委托/协议,也可以使用闭包。我提供了一个指向 YouTube 视频的链接,该视频解释了 Delegate 方法作为我自己下面问题的答案,下面的另一张海报提供了一个非常简洁的使用闭包的示例。

标签: swiftuitableview

解决方案


使用闭包将按钮操作从单元格回调到视图控制器。

自定义单元

class CustomCell : UITableViewCell {

    var ClousureBtnActionHandler:((_ sender: AnyObject) -> Void)?


    @IBAction func btnInfoActionHandler(_ sender : AnyObject) {
        if self.ClousureBtnActionHandler != nil {
            self.ClousureBtnActionHandler!(sender)
        }
    }
}

视图控制器

表视图数据源

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")
        }
    }

推荐阅读