我正在使用 ECSlidingViewController,这是一个提供侧边抽屉效果的库。我的应用程序打开一个(导航 Controller 持有一个)“附近”结果的 TableView Controller ,并且单元格转到 ScrollView Controller 。
隐藏的左侧菜单是一个 TableView Controller (不同类),有几个选项,其中 2 个是其他 TableView Controller ,它们将使用与 TableView 相同的布局、单元格原型(prototype)和详细 ScrollView 启动。
我想知道使用某种属性(例如枚举 typeOfDisplay)制作更通用的 tableView 是否会更好,这让我有条件地管理不同的细微差别,例如从服务器/CoreData 填充单元格、导航栏标题、排序顺序、切换自动更新、可编辑性等 - 或者 - 如果我应该为每个不同的 View Controller (“附近”、“精选”和“已保存”)制作 NavigationController->TableViewController->ScrollViewController
我想重用我的表格 View ,因为单元格/显示/细节是相同的,但填充表格的方法不同,我不想做一些难以修改的事情。
编辑 -
如果您熟悉选项卡栏 Controller 中的 TableView ,那么实现细节应该几乎相同。
最佳答案
最好将 View 配置放入 View Controller 中。但是可以有重用配置操作的方法。
我遇到过和你一样的情况。我决定使用 Strategy Pattern重构我的 Controller 。我将所有与数据相关的东西放入符合 UITableViewDataSource
和 UITableViewDelegate
协议(protocol)的 TableDataManager
类中,并对其应用多态性来配置数据在单元格中以及 UITableView
在运行时不同情况下的外观。
所有相同的操作都在 TableDataManager
中实现,细微差别由 TableDataManager
的子类覆盖。通过将 TableDataManager
的适当子类分配给 View Controller ,您无需在各处复制和粘贴相同的单元格/显示/详细信息操作。
这是我的经历。希望对您有所帮助。
关于ios - 我应该为不同的数据源重用导航和 TableView Controller 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17931595/