我想构建一个具有一个主视图的应用程序,该主视图大部分时间都在屏幕上。部分视图是不变的并显示主要控件。但是,有一个特殊的子视图取决于应用程序的状态。应用程序的状态以特殊的“状态对象”呈现。一次只能有一个“状态对象”处于活动状态,但它们可以有非常不同的逻辑,并且应该以不同的用户界面呈现(在这个特殊的子视图中)。
显然,我可以通过分析当前状态对象的类型,在主视图的ViewController中进行处理。我可以创建一个 biiiig 开关,其中包含大量特定于状态对象可能具有的每个可能的类的代码,并在每次添加新的状态对象子类时添加一些代码......但这听起来不是一个好的架构大部头书。我希望状态对象或特定于它们的不同 ViewController 来控制这个特殊的视图。不幸的是,我对视图、视图控制器和委托感到有点迷茫,不明白我究竟如何才能做到这一点。