一个 UITableView - 多个数据源,最好的设计模式?
这似乎是一个典型的问题,但我有一个 UITableView,它对于两个单独的数据源具有相同的行为。 设计类层次结构以减少重复和 if/else 条件的最佳方法是什么? 视图控制器将对两个数据源执行完全相同的操作,它们只是在数据集中是唯一的。 我应该让父控制器只设置其数据源/各自的标题吗?
当使用 UISegmentControl 显示具有相同界面但不同数据源的两个视图时,也会出现同样的问题。
This seems like a typical problem, but I have a UITableView that has identical behavior for two separate data sources. What is the best way of going about designing the class hierarchy to have as little duplication and if/else conditions? The view controller is going to do the same exact thing to both data sources, they're just unique in their data set. Should I have the parent controller just set its data source/respective title?
The same issue is relevant as well when using a UISegmentControl for displaying two views with the same interfaces, but different data sources.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
请注意这里的术语。 UITableView 有一个称为
dataSource
的东西,但您似乎实质上指的是两组不同的数据。在您建议的情况下,在表的
dataSource
(遵守 UITableViewDataSource 协议的对象)中,我将拥有三个数组。在 dataSource 方法中,使用 currentViewedArray 作为表数据的源。
然后,将 currentViewedArray 设置为您要查看的任何数组:
您可以使用 UISegmentedControl 在两个数组之间切换。
Be careful with your terminology here. A UITableView has something called a
dataSource
but you seem to be referring, essentially, to two different sets of data.In the case you're suggesting, in the table's
dataSource
(the object that adheres to the UITableViewDataSource protocol), I'd have three arrays.In the dataSource methods, use the currentlyViewedArray as the source of the table's data.
Then, set the currentlyViewedArray to whichever array you want to view:
You can use the UISegmentedControl to switch between the two arrays.