ios - 关于可重用的 UITableViewCells 和委托(delegate),最佳实践是什么?

标签 ios uitableview delegation

我正在构建一个在大多数屏幕上显示表格 View 的应用程序。它们显示了一些不同的表格 View 单元格,但有一个显示在表格 View 的 3/5 中。这个显示视频并为用户提供与视频交互的界面(如评论、标记、删除、播放/暂停等)的单元格有一个相当大的委托(delegate),其中包含七个方法/函数。

我的问题是:
最好的做法是设置一个单独的 Controller ,作为我的 View Controller 的一个属性,分配给单元格的委托(delegate),或者使用已经实现的方法子类化 UITableViewController

我看到后者的问题是我必须实现一种奇怪的方式来处理数据源(设置返回模型的方法,始终确保视频存储在该数组中)而前者似乎与标准 MVC 实践有点奇怪。有什么建议吗?

更新

我开始分解出要使用的数据源来实现单元的协议(protocol)。我似乎遇到的另一个问题是显示多个单元格,即:

我有一个 searchDisplayController,它根据 selectedScopeIndex 显示 UserCellVideoCell搜索栏。我可以处理这个问题的一种方法是为此 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/

相关文章:

ios - 在提交到 Appstore 之前,如何将应用程序定位为在 iPad 2 或更新版本(不是 iPad 1)上运行?

iphone - 代表 uitableview 中的必填字段

ios - 如何解析 xml 文件并创建对象以添加到 ios 中的 tableview 数组中

c# - UI 按钮上的 onClick 监听器委托(delegate)

ios - 在导入 Swift header 的桥接 header 中导入文件

ios - NSMutableArray 内部的 block 泄漏 (ARC)

objective-c - Objective-C-如何将字节数组转换为NSString?

ios - 可编辑 UITableView 的内存错误(iOS 7 ARC)

ASP.NET 传递 Windows 身份验证凭据

objective-c - 了解自定义委托(delegate)