Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 如何将数据从表视图单元类传递回具有表视图的视图控制器?_Swift_Uitableview - Fatal编程技术网

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

Swift 如何将数据从表视图单元类传递回具有表视图的视图控制器?,swift,uitableview,Swift,Uitableview,我有一个带有tableView和自定义单元格的视图控制器。我想学习如何设置它,以便在单击tableviewCells中的按钮时,它们可以操纵具有tableview的视图控制器中的元素 多亏了有帮助的贡献者,我了解到答案是有两种方法可以让按钮从tableViewCell自定义单元格类中单击,并与具有tableView的viewController交互。您可以使用委托/协议,也可以使用闭包。我提供了一个youTube视频的链接,该视频解释了委托方法,作为我下面问题的答案,下面的另一张海报提供了一个使

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


多亏了有帮助的贡献者,我了解到答案是有两种方法可以让按钮从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")
        }
    }