0

处理具有某种模型对象并且其上的各种属性被多个视图和(自定义)子视图修改的情况的既定方法是什么?

子视图是否应该引用它的容器(我不知道 iOS 是否保留这样的引用,但我可以在必要时设置一个),它具有内容并对其进行修改?

是否应该尽可能少的视图具有指向内容的指针,并且子视图可以向其容器发送消息以修改内容?

别的东西?我知道我可以一起破解一些东西,但我想要一个合适的设计模式。

4

1 回答 1

1

通常的 - MVC 方式 - 是有一个控制器对象在视图和模型之间进行调解。

您将拥有一个 viewController 来管理每个全屏视图视图层次结构和一个单独的模型对象,每个不同的 viewController 都会更新该模型对象。

所有视图或子视图都没有指向模型的指针。从视图或子视图中获取数据的常用方法是通过委托或 - 如果您的视图是 UIControl 子类 - 目标/操作。委托(或操作方法的位置)将是视图控制器。视图不应该知道模型,反之亦然。

如果您希望在应用程序的整个生命周期中都需要一个持久模型对象,并从各种视图控制器进行更新,那么您很可能希望使用单例模式 -此处的苹果文档- 另请参阅此处有关单例的大量问答(全局可访问对象),以及此链接

于 2013-01-25T06:04:24.617 回答