2

我是 MVC 和 XCode 的新手,我无法将我对 MVC 的概念理解转化为设计和实现具体类。我希望就如何构造控制器和视图以获得预期的 UI 获得一些建议。这是针对 OS X 应用程序(不是 iOS)。

我的对象模型是 3 个对象:Batch它有一些文本成员和一系列产品。Product有一些文本成员和一组图像。Image基本上是存储图像的路径。

这个想法是主视图将显示所有批次的缩略图和标题的列表。单击一个将清除屏幕并显示该批次中所有产品的缩略图。单击产品将清除屏幕并打开产品详细信息页面,该页面显示产品数据和所有图像的缩略图。单击图像缩略图会显示占据整个窗口的图像。

这些问题正在努力解决

  • 我使用哪些控制器?我从哪个继承?
  • 我是否NSObject在 XIB 对象列表中使用真实控制器或 s?
  • 我使用哪些视图?我从哪个继承?
  • 哪些视图可以在 XIB 中,哪些必须动态添加?

显然,我一无所知,我没有找到解释“为什么?”的好教程。任何方向都值得赞赏,因为我以前的尝试很复杂,几乎可以肯定打破了惯例和标准做法。

4

1 回答 1

5

苹果实际上提供了一个非常好的教程/示例,说明您所询问的确切情况:创建主从界面

值得记住的一件事是,Apple 的 MVC 概念与“经典”MVC 模式略有不同(或者我怀疑 Martin Fowler 会这么说)。如果您将现有的 MVC 概念放在一边,并通过 Apple 提供的一些介绍性示例进行工作,我怀疑您会更轻松地使用它。

在 30,000 英尺处,Cocoa 可以说更像 Model-View-Presenter,或者不幸地命名为 Model-View-ViewModel 模式。记住整个模式可以嵌套或多次实例化(即海龟一直向下)也很好。在基于文档的应用程序的最简单情况下,您将拥有一个 NSDocument 子类。这将拥有模型,并且通常负责改变模型,以及将其读取和写入磁盘。这样,它就是一个经典的 MVC 控制器。在默认的 Xcode 模板中,它还将是窗口的所有者,因此将作为“ViewController”执行双重职责,这是一种 Cocoa 主义,大致相当于 MVP 中的“Presenter”。视图通常在 XIB 文件中指定,其生命周期由框架为您管理。

我现在要停下来,因为那里有非常好的参考资料,它们会比我在这里做的更好。看看这个:Mac 的基于文档的应用程序编程指南

于 2013-06-11T12:56:49.337 回答