处理某种模型对象的情况的既定方法是什么,并且其中的各种属性会被多个视图和(自定义)子视图修改?
子视图是否应该引用其容器(我不知道iOS是否保留了这样的引用,但我可以在必要时设置一个引用),其中包含内容,并修改它?
尽可能少的视图有指向内容的指针,子视图可以将messagea发送到他们的容器来修改内容吗?
其他什么?我知道我可以一起破解,但我想要一个合适的设计模式。
答案 0 :(得分:1)
通常的 - MVC方式 - 是让控制器对象在视图和模型之间进行调解。
您将拥有一个viewController来管理每个视图视图层次结构和一个单独的模型对象,每个视图控制器都会更新。
所有视图或子视图都没有指向模型的指针。从视图或子视图中获取数据的常用方法是通过委派或 - 如果您的视图是UIControl子类 - 目标/操作。委托(或动作方法的位置)将是视图控制器。观点不应该知道模型,反之亦然。
如果您想要在应用程序的整个生命周期中使用一个持久化模型对象,从各种视图控制器进行更新,您很可能希望使用单一模式 - apple docs here - 另请参阅众多问答答案这里是关于单身人士(全球可访问的对象)和 this link。