如何将数据从 uitableviewcontroller 发送到 uitableviewcell

Posted

技术标签:

【中文标题】如何将数据从 uitableviewcontroller 发送到 uitableviewcell【英文标题】:how to send data from uitableviewcontroller to uitableviewcell 【发布时间】:2019-09-20 19:32:08 【问题描述】:

我有以下情况

TableViewController (ExploreViewController) 具有自定义单元格 - CategoryTableViewCell。每个单元格都有一个带有 UICollectionViewCells 的集合视图。

我希望 CategoryTableViewCell 在显示集合视图单元格时联系 ExploreViewController 以确定它需要显示哪些数据。数据取决于表格视图单元格的索引路径行和集合视图单元格的索引。

如何使用委托来完成此任务?

【问题讨论】:

【参考方案1】:

我不会那样做。我会将每个单元格需要的数据作为表视图控制器的cellForRow(at:) 方法中的模型对象传递给它。如果单元格的数据发生变化,则向其传递一个新的模型对象。然后单元格可以使用该模型数据来响应来自其子集合视图的数据源调用。

如果你决定使用委托模式,或者类似的东西:

我们称它为数据源而不是委托。设计一个 CategoryTableViewCellDataSource 协议。创建 CategoryTableViewCell 时,将表视图控制器设置为其数据源。

让单元格询问它的数据源以显示数据。委托协议将使用单元格的位置来确定它的索引路径,然后从模型中获取数据并返回它。 (你会找到单元格内容视图的中点,将该点转换为表格视图的坐标系,然后使用表格视图的indexPathForRow(at:) 方法找出索引路径。

【讨论】:

以上是关于如何将数据从 uitableviewcontroller 发送到 uitableviewcell的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Modal ViewController 重新加载父 UITableViewController 中的数据

我需要使用数组将数据从 UITableViewController 传递到 UIViewController

尝试从 UITableViewController 文本框将数据保存在核心数据中

如何将数据放在 UITableViewController 的正确部分?

从 UIViewController 转到 UITableViewController

如何从 UIViewController 传递变量来委托 UITableViewController