我是MVC和XCode的新手,我无法将对MVC的概念理解转化为设计和实现具体的类。我希望得到一些关于如何构建控制器和视图以获得预期UI的建议。这适用于OS X应用程序(不是iOS)。
我的对象模型是3个对象:Batch
,它有一些文本成员和一组产品。 Product
有一些文本成员和一组图像。 Image
基本上是存储图像的路径。
这个想法是主视图将显示所有批次的缩略图和标题的列表。单击一个将清除屏幕并显示该批次中所有产品的缩略图。单击产品将清除屏幕并打开产品详细信息页面,其中显示所有图像的产品数据和缩略图。单击图像缩略图将显示占据整个窗口的图像。
问题正在挣扎
NSObject
?显然,我很无能,我找不到解释“为什么?”的好教程。 任何方向都受到赞赏,因为我之前的尝试很复杂,几乎肯定会破坏惯例和标准做法。
答案 0 :(得分:5)
Apple实际上提供了一个很好的教程/示例,说明您所询问的具体情况:Creating a Master-Detail Interface
值得注意的一点是,Apple的MVC概念与“经典”MVC模式略有不同(或者我怀疑Martin Fowler会这样说,无论如何)。如果你将现有的MVC概念放在一边并通过Apple提供的一些介绍性示例,我怀疑你会有更轻松的时间。
在30,000英尺处,Cocoa可能更像是Model-View-Presenter,或者不幸的是名为Model-View-ViewModel模式。记住整个模式可以嵌套或多次实例化(即乌龟一直向下)也是很好的。在最简单的基于文档的应用程序中,您将拥有一个NSDocument子类。这将拥有该模型,并且通常负责改变模型,以及读取和写入磁盘。通过这种方式,它是一个经典的MVC控制器。在默认的Xcode模板中,它也将是窗口的所有者,因此将作为“ViewController”执行双重任务,这是一个Cocoa-ism,大致相当于MVP中的“Presenter”。视图通常在XIB文件中指定,其生命周期由框架管理。
我现在要停下来了,因为那里有很好的参考资料可以比你在这里做得更好。看看这个:Document-Based App Programming Guide for Mac