修复具有许多状态的巨型视图控制器

Posted

技术标签:

【中文标题】修复具有许多状态的巨型视图控制器【英文标题】:Fix giant viewcontroller with lots of states 【发布时间】:2018-07-27 08:45:59 【问题描述】:

我的应用程序中有一个UIViewController,其中包含一个UITableView。此 tableView 对第 2 部分有几种不同的状态。此部分中的行可能因高度、单元格类型和单元格数量而异。

我过去处理这个问题的方式是一个UIViewController,在UITableViewDelegateUITableViewDataSource 中有很多不同的if 语句。现在,过了一段时间,这给了我一个相当冗长而复杂的控制器。

我想了两种可能的方法来解决这个问题。第一个将是不同的 UITableViewDelegateUITableViewDataSource 类,基于 if 语句。另一种方法是为每个可能的状态加载不同的UITableViewController

你们认为最干净的解决方案是什么?或者还有其他更清洁的解决方案吗?

【问题讨论】:

【参考方案1】:

首先为 viewcontroller 创建一个扩展,它确认 tableView 数据源和委托协议。

为了实现这一点,我们可以在 Presenter 类中创建一个自定义方法来处理所有这些代码并在需要时调用此方法。

【讨论】:

以上是关于修复具有许多状态的巨型视图控制器的主要内容,如果未能解决你的问题,请参考以下文章

具有自定义委托或数据源的视图控制器的状态保留

在容器视图中具有静态表的导航控制器

选项卡栏项显示具有模态序列的视图控制器

iOS 7 及更高版本:为每个视图控制器设置状态栏样式

JSP MVC:如何使用具有多个视图和动作的控制器 [重复]

状态栏样式与 ParentViewController 不同的模态视图控制器