我有一个自定义视图,这有点像黑客。基本上它是一个UIView,其中tableView作为它的属性,tableView中需要自己的委托的其他视图。我需要一个用于UITableView的viewController,并且不能根据这个SO链接Custom UIView as UITableView delegate and datasource?使UIView成为它的委托。
我可以让UITableView拥有UIViewController的属性并将UIViewController设置为tableView的委托吗?
在这种情况下,根据OOP,UITableView 有一个 UIViewController,所以从技术上讲,我可以期待这个工作。但是,我想知道是否因为UITableView和UIViewController以这种方式耦合,这可能会产生问题。
答案 0 :(得分:1)
UIViewController
您不需要UITableView
- 您只需要一个或多个实现数据源和委托协议的对象。根据您链接到的问题的已接受答案,您可以使用单独的控制器类来提供此功能。
正确的答案取决于表格如何与UIView
子类一起使用。
如果表总是具有相同的内容(说出几个月的列表)并且在公开或抽象属性方面没有任何价值,那么您可以在{{1}内编写委托和dataSource的代码子类或辅助类。
如果表格内容会因使用UIView
的方式而有所不同(例如,您不知道列表是什么的人员列表 - 朋友,亲戚,员工......)那么它会使通过UIView子类简单地公开tableview的数据源(以及必要时委托)属性的意义