如何将数据从表视图单元格类传递回带有表视图的视图控制器?

时间:2019-03-01 07:47:48

标签: swift uitableview

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

多亏了有帮助的贡献者,我才知道答案是,有两种方法可以使来自tableViewCell自定义单元类的按钮的单击与具有tableView的viewController进行交互。您可以使用委托/协议,也可以使用闭包。我提供了一个youTube视频的链接,该视频解释了Delegate方法是下面我自己的问题的答案,而下面的另一张海报则提供了一个使用闭包的简洁示例。

2 个答案:

答案 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教程,对如何设置代表和协议作为解决方案,对让单元类指示视图控制器我们希望它做什么的解决方案,我发现非常有帮助。

https://www.youtube.com/watch?v=UPrBXUWPf6Q