iOS,用于调整自定义 subview 中的内容属性的模式

标签 ios objective-c

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

subview 是否应该拥有对其容器的引用(我不知道 iOS 是否保留这样的引用,但如果需要的话我可以设置一个),其中包含内容,并对其进行修改?

是否应该尽可能少的 View 有指向内容的指针,并且 subview 可以向其容器发送 messagea 来修改内容?

还有别的事吗?我知道我可以将一些东西组合在一起,但我想要一个合适的设计模式。

最佳答案

通常的 MVC 方式是使用 Controller 对象来协调 View 和模型。

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

所有 View 或 subview 都没有指向模型的指针。从 View 或 subview 中获取数据的常见方法是通过委托(delegate)或 - 如果您的 View 是 UIControl 子类 - 目标/操作。委托(delegate)(或操作方法的位置)将是 View Controller 。 View 不应该了解模型,反之亦然。

如果您希望在应用程序的整个生命周期中拥有一个持久的模型对象,并从各种 View Controller 进行更新,那么您很可能希望使用单例模式 - apple docs here - 另请参阅此处有关单例(全局可访问对象)的大量问答,以及 this link .

关于iOS,用于调整自定义 subview 中的内容属性的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14503102/

相关文章:

ios - 尝试在没有 UI 锁定的情况下将进程发送到后台

ios - 如何用阴影,填充和圆角样式化tableview部分?

objective-c - NSNumbers 比 int 占用更少的内存?

objective-c - 创建一个完全自定义的 NSAlert

ios - 核心数据初始化堆栈中的冗余代码

objective-c - 根据 UILabel 动态调整 uitableViewCell 的大小(带段落间距)

ios - 考虑到操作系统会在 30 秒内关闭应用程序,Whatsapp 的网络版本如何在 iOS 设备上运行?

ios - AFNetworking 2.0发送带有字典参数数组的发布请求

ios - 适用于 Mac 上 Windows 的 Cordova 插件添加/删除

ios - 如何在 Core Data 中保存有关系的实体