在cocoa中,如何将模型连接到viewcontrollers?

时间:2010-03-07 20:45:56

标签: cocoa model-view-controller

据我所知,cocoa程序的基本应用程序结构是MainMenu.xib中的AppController。然后,AppController初始化WindowControllers和ViewControllers,它们具有所有UI逻辑,然后为应用程序的其余部分加载xib文件。 AppController还创建了Model类。

我的困惑在于如何将模型类中的数据导入视图中。我想使用绑定和键值观察。每个视图控制器都应该有一个指向AppController和ModelController的指针吗?如果是这样你会怎么做?

[[ViewController alloc] initWithModel:ModelController];

我能想到的唯一解决方案,看起来不是很干净。

2 个答案:

答案 0 :(得分:1)

我制作一个创建/加载并拥有该模型的控制器。我的应用程序委托创建并拥有此控制器。

同一个控制器通常也拥有窗口或视图;我很少使用专用的窗口控制器,从未使用过视图控制器。如果您使用窗口/视图控制器,模型控制器也会创建并拥有它们。

因此,一个控制器负责模型(或其某些特定部分)和显示(模型的一部分)模型的(控制器)窗口。

答案 1 :(得分:0)

NSViewController链接到模型的常用方法是设置其representedObject值。无需设置指向AppController的指针,因为它总是可以通过[NSApplication sharedApplication].delegate获得。