我正在构建一个在大多数屏幕中显示表格视图的应用程序。它们提供了一些不同的表视图单元格,但是在表格视图的3/5
中有一个表格。该单元显示视频并为用户提供与视频交互的界面(如,评论,标记,删除,播放/暂停等),具有相当大的委托,具有七种方法/功能。
我的问题是:
最佳做法是设置一个单独的控制器,该控制器是我的视图控制器的属性,被指定为单元格的委托,还是使用已经实现的方法将UITableViewController
子类化?
我在后者看到的问题是我必须实现一种奇怪的方式来处理数据源(设置返回模型的方法,始终确保视频存储在该数组中)而前者似乎标准的MVC实践有点奇怪。有什么建议吗?
更新
我开始考虑使用实现单元协议的数据源。我似乎遇到的另一个问题是显示多个单元格,即:
我有searchDisplayController
根据搜索栏的UserCell
显示VideoCell
和selectedScopeIndex
的内容。我可以处理的一种方法是为此tableView创建一个dataSource来处理这两种情况,或者根据对selectedScopeIndex
的更改来交换数据源。两种选择中的任何一种都被瞧不起?交换表视图的数据源是否有效?
答案 0 :(得分:0)
我通过实现一个UITableViewDataSource
控制器解决了这个问题,该控制器也可以处理单元的代理。我能够将7方法委托缩短为数据源上的3方法委托,用于推送新控制器,从数据模型中删除对象,以及处理淡入/更新。
当然,我需要传递对UITableView
,UIView
和源UIStoryboard
的{{1}}的引用,但代码更具可读性和易管理性。