我正在构建一个在大多数屏幕上显示表格 View 的应用程序。它们显示了一些不同的表格 View 单元格,但有一个显示在表格 View 的 3/5
中。这个显示视频并为用户提供与视频交互的界面(如评论、标记、删除、播放/暂停等)的单元格有一个相当大的委托(delegate),其中包含七个方法/函数。
我的问题是:
最好的做法是设置一个单独的 Controller ,作为我的 View Controller 的一个属性,分配给单元格的委托(delegate),或者使用已经实现的方法子类化 UITableViewController
?
我看到后者的问题是我必须实现一种奇怪的方式来处理数据源(设置返回模型的方法,始终确保视频存储在该数组中)而前者似乎与标准 MVC 实践有点奇怪。有什么建议吗?
更新
我开始分解出要使用的数据源来实现单元的协议(protocol)。我似乎遇到的另一个问题是显示多个单元格,即:
我有一个 searchDisplayController
,它根据 selectedScopeIndex
显示 UserCell
和 VideoCell
搜索栏。我可以处理这个问题的一种方法是为此 tableView 创建一个数据源来处理这两种情况,或者根据对 selectedScopeIndex
的更改换出数据源。这两个选项中的任何一个都被看不起了吗?交换 TableView 的数据源是否有效?
最佳答案
我通过实现 UITableViewDataSource
解决了这个问题也将处理单元的委托(delegate)的 Controller 。我能够将数据源上的 7 方法委托(delegate)缩短为 3 方法委托(delegate),用于推送新 Controller 、从数据模型中删除对象以及处理淡化/更新。
当然,我需要传递对 UITableView
的引用, UIView
, 和 UIStoryboard
来源UIViewController
,但代码更具可读性和可管理性。
关于ios - 关于可重用的 UITableViewCells 和委托(delegate),最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21354202/