3

我有一个包含几个相当复杂的视图的窗口。现在,我使用单个 NSWindowController 来控制窗口和所有视图的 UI。它正在成为一个非常庞大的类,因为它处理每个视图的细节。

尽管视图行为是相互独立的,所以我看到了将每个视图的 UI 逻辑放入单独的控制器中的机会。

根据Mac App Programming Guide,这正是视图控制器的用途:

使用视图控制器来划分工作以管理更复杂的窗口布局。您的视图控制器(与窗口控制器)一起工作以呈现窗口内容。

但是,我找不到任何关于这个想法在实践中如何运作的文档或示例。除了窗口控制器之外,我可以将多个视图控制器添加到 nib 文件吗?

4

1 回答 1

3

如果您将视图控制器添加到 nib,那就是它们将被实例化的地方,并且您将IBOutlets 添加到窗口控制器(假设这是 nib 的文件所有者)以连接它们。

然而,就内存而言,该方案可能会变得昂贵,尤其是您拥有的视图控制器越多。您可能想要考虑在窗口控制器中懒惰地实例化它们(即,仅在需要时这样做),假设这不会在第一次呈现视图之前导致令人反感的延迟。

不要害怕尝试这两种方法。其中之一可能最适合您。

无论如何,我为您决定将所有代码分解到单独的控制器中而喝彩。非常好。祝你在你的努力中好运。

于 2012-04-09T17:17:17.590 回答