我有一个关于使用硬编码数据设置表格视图的问题。有时,当您需要显示不是从 DATA MODEL 层接收到的数据,而是存储为硬编码信息时,开发人员会遇到这种情况。
我的意思例如,当您构建设置屏幕时,可能会有一些 UITableViewCell,例如:
CustomTableViewCellName - 配置数据:占位符名称/姓氏、图标。
CustomTableViewCellPhone - 配置数据:电话占位符、图标。
CustomTableViewCellLogout - 配置数据:注销/退出文本、图标。
假设我有 3 个表格视图部分,每个部分包含 5 个不同的单元格,我在上面作为不同案例的示例进行了描述。
如果我们将在
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
switch (indexPath.section)
..... A LOT OF CASES THAT CONFIGURE EACH CUSTOM CELLS
如您所见,没有 DATA MODEL 只有占位符和图标图像将作为标签、textviews 图像视图等的默认数据存储在 UITableViewCell 中。我在这里没有说模型,而是关于模型 USER 例如存储用户姓名,姓氏等。我的意思是我需要在某处存储一些默认数据,也许在字典中。实际上占位符只是一个占位符,尽管它有一个 TEXT 并且 TEXT 是一个数据 =)
在这种情况下,我们有用于配置视图的默认状态的数据和将用作模型 USER 的数据。
我担心的是我会有一个大开关和非常大的视图控制器。
我想创建一些方法,这些方法将在其中使用 indexPath.row 来表示带有开关的部分:
- (UITableViewCell *)cellsForSection1:(NSIndexPath *)ip
- (UITableViewCell *)cellsForSection2:(NSIndexPath *)ip
- (UITableViewCell *)cellsForSection2:(NSIndexPath *)ip
并将这些方法移动到将为我返回一个单元格的交互器。我知道 Interactor 应该只准备数据并将其通过 Presenter 推送到视图。
也许我想多了一个问题。我只是不想在 VC 中有一个大开关 =) 我知道没有正确的解决方案。但也许有人面对它。
在我的情况下,数据是我想要在某处配置以防止过载视图控制器的默认单元格。是的,单元格是数据可能看起来很疯狂,但看看包含 1000 行配置代码的 ViewControllercellForRowAtIndexPath
也很疯狂 =)