对于可重用的UITableViewCell和委托,最佳做法是什么?

时间:2014-01-25 18:03:06

标签: ios uitableview delegation

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

我的问题是:
最佳做法是设置一个单独的控制器,该控制器是我的视图控制器的属性,被指定为单元格的委托,还是使用已经实现的方法将UITableViewController子类化?

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

更新

我开始考虑使用实现单元协议的数据源。我似乎遇到的另一个问题是显示多个单元格,即:

我有searchDisplayController根据搜索栏的UserCell显示VideoCellselectedScopeIndex的内容。我可以处理的一种方法是为此tableView创建一个dataSource来处理这两种情况,或者根据对selectedScopeIndex的更改来交换数据源。两种选择中的任何一种都被瞧不起?交换表视图的数据源是否有效?

1 个答案:

答案 0 :(得分:0)

我通过实现一个UITableViewDataSource控制器解决了这个问题,该控制器也可以处理单元的代理。我能够将7方法委托缩短为数据源上的3方法委托,用于推送新控制器,从数据模型中删除对象,以及处理淡入/更新。

当然,我需要传递对UITableViewUIView和源UIStoryboard的{​​{1}}的引用,但代码更具可读性和易管理性。