我开始在 Objective-C 中学习软件设计,并且正在实现 Instagram 之类的应用程序。用户可以阅读和发布提要。但是,我遇到了问题。视图不能相互通信,并且视图转换方法在不同的视图中实现。我知道有一些设计模式可以帮助我集中转换流量等。我需要满足一些限制。
- UITabbarController 包含几个 UINavigationController 和 UIViewController (4个标签)
- 我想将视图转换集中在一个类层次结构中,例如类层次结构示例:
[ViewTransition] ^ | +------------------+-----------------+ | | | [ToAView] [ToBView] [ToCView]
(ViewTransition:包含抽象方法“requestViewTransition”的协议/抽象类。)
(ToAView:一个类实现了抽象方法“requestViewTransition”,该方法执行从任何视图到“A”视图的视图转换。)
- 每个视图转换可能有不同的实现方法。
例如从“A”视图到“B”视图,我们需要使用:
[navigationController pushViewController:BViewController 动画:YES];
例如从“C”视图到“B”视图,我们需要使用:
[CViewController presentModalViewController:BViewController 动画:YES];
- 观察者模式需要一些视图控制器。例如,用户在“A”视图中输入数据,“A”视图的模型需要通知其观察者更新他们的视图。