ios - UITableView 的属性可以是 UITableView Delegate 和 DataSource

标签 ios oop uitableview

我有一个自定义 View ,但有点麻烦。基本上它是一个带有 tableView 作为其属性的 UIView,tableView 中的其他 View 需要自己的委托(delegate)。我需要 UITableView 的 viewController ,并且无法根据此 SO 链接 Custom UIView as UITableView delegate and datasource? 使 UIView 成为委托(delegate)。

我可以让 UITableView 具有 UIViewController 的属性并将该 UIViewController 设置为 tableView 的委托(delegate)吗?

在这种情况下,根据 OOP,UITableView 有一个 UIViewController,所以从技术上讲,我可以期望它能够工作。但是,我想知道这是否会在某个地方产生问题,因为 UITableView 和 UIViewController 以这种方式耦合。

最佳答案

UITableView 不需要UIViewController - 您只需要一个或多个实现数据源和委托(delegate)协议(protocol)的对象。根据您链接到的问题的公认答案,您可以使用单独的 Controller 类来提供此功能。

正确的答案在一定程度上取决于表格如何与您的 UIView 子类一起使用。

如果表格总是具有相同的内容(比如月份列表)并且公开或抽象属性没有值(value),那么您可以在 中编写委托(delegate)和数据源UIView 子类或辅助类。

如果表格内容会根据 UIView 的使用方式而有所不同(比如一个你不知道列表是什么的人的列表 - friend ,亲戚,员工......)那么通过 UIView 子类简单地公开 tableview 的数据源(并在必要时委托(delegate))属性是有意义的

关于ios - UITableView 的属性可以是 UITableView Delegate 和 DataSource,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25048770/

相关文章:

ios - 将 NSMutableArray 设置为 NSDictionary - Objective C

ios - UIPickerView 奇怪的图形问题

objective-c - Objective C 架构问题

UITableViewCell 不显示 detailTextLabel.text - Swift

ios - 实现此设计的最佳方法 [ios]

ios - 如何测量 Table View 滚动的速度?

Python 类输入参数

c# - 没有继承的模板方法模式

ios - 配置自定义 UITableViewCell 时如何传递参数

objective-c - 使用 UISegmentedControl 切换到 MKMapView 和 UITableView