我有一个包含几个相当复杂的视图的窗口。现在,我正在使用单个NSWindowController来控制窗口和所有视图的UI。它正在成为一个非常庞大的类,因为它正在处理每个视图的细节。
但是视图行为彼此独立,所以我看到有机会将每个视图的UI逻辑放入一个单独的控制器中。
根据Mac App Programming Guide,这正是视图控制器的用途:
使用视图控制器来分配管理更多内容的工作 精致的窗口布局。您的视图控制器一起工作 (用窗口控制器)来显示窗口内容。
但是,我找不到任何关于这个想法如何在实践中起作用的文档或示例。除了窗口控制器之外,我还可以向nib文件添加多个视图控制器吗?
答案 0 :(得分:3)
如果将视图控制器添加到nib,那就是它们将被实例化的位置,并且你将IBOutlet
添加到窗口控制器(假设是nib的文件所有者)以便连接它们。
然而,就内存而言,该方案可能会变得昂贵,尤其是您拥有的视图控制器越多。您可能希望考虑在窗口控制器中懒惰地实例化它们(即,仅在需要时这样做),假设在第一次呈现视图之前不会导致令人反感的延迟。
不要害怕尝试这两种方法。其中一个可能最适合你。
无论如何,我赞赏你决定将所有代码分解成单独的控制器。非常好。祝你好运。