0

我正在使用 ECSlidingViewController,这是一个提供侧抽屉效果的库。我的应用程序打开到一个(导航控制器持有一个)“附近”结果的表视图控制器,并且单元格连接到滚动视图控制器。

隐藏的左侧菜单是一个带有几个选项的表视图控制器(不同类),其中 2 个是其他表视图控制器,它们将使用与启动时看到的表视图相同的布局、单元格原型和详细滚动视图。

我想知道用某种属性(如枚举 typeOfDisplay)制作更通用的 tableView 是否会更好,这让我可以有条件地管理不同的细微差别,例如从服务器/CoreData 填充单元格、导航栏标题、排序顺序、切换自动更新、可编辑性等 - 或者 - 如果我应该为每个不同的视图控制器(“附近”、“精选”和“已保存”)制作 NavigationController->TableViewController->ScrollViewController

我想重用我的表格视图,因为单元格/显示/细节将是相同的,但填充表格的方法不同,我不想做出难以修改的东西。

编辑 -

如果您熟悉标签栏控制器中的表格视图,那么实现细节应该几乎相同。

4

2 回答 2

3

最好将视图配置放入视图控制器。但是有一些方法可以重用配置操作。

我遇到了和你一样的情况。我决定使用策略模式来重构我的控制器。我将所有与数据相关的东西放入一个TableDataManager符合UITableViewDataSourceUITableViewDelegate协议的类中,并对其应用多态性来配置单元格中的数据以及UITableView运行时在不同情况下的外观。

所有相同的动作都在 中实现TableDataManager,细微差别被 的子类覆盖TableDataManager。通过为视图控制器分配适当的子类,TableDataManager您无需在这里和那里复制和粘贴相同的单元格/显示/细节操作。

这就是我的经历。希望它会有所帮助。

于 2013-08-02T05:41:36.980 回答
-1

我建议您对不同的数据源使用不同的视图控制器。最初将它们放在一个地方听起来不错,但随着时间的推移,您可能需要为每个表视图添加不同的功能,您的视图控制器将变得一团糟。

于 2013-08-02T02:23:48.613 回答