【发布时间】:2009-05-12 21:54:35
【问题描述】:
我可能没有正确使用 IBOutlet,或者 NIB 文件工作方式的其他一些微妙之处给我带来了麻烦 - 任何帮助都将不胜感激(请随时提出另一种方法来完成我想要的事情)。
我有一个 View 对象和一个 Controller 对象。两者都在NIB中。当加载 NIB 并在 'awakeFromNib' 回调中初始化 View 时,也会调用 Controller 的 init。 我需要一种方法来连接这两个对象 - 具体来说,启用“视图”对象来调用控制器上的函数。
根据在线文档,实现这些连接的方法是在 View 中定义一个 IBOutlet 并将其连接到 Interface Builder 中的 Controller。所以我创建了一个
IBOutlet Controller* _controller;
在 View 界面中,并通过从 View 到 Controller 的连接并将 _controller 出口分配给 Controller(Interface Builder 中的蓝色 Generic Object 框)以图形方式将其连接到 Interface Builder 中的 Controller 对象。
但在运行时,_controller 始终为 _nil。我已经验证了Controller的init确实被调用了。
我对此有什么明显的遗漏吗? 有没有更简单的方法来连接这两者?由于它们都是由 NIB 创建的,因此我没有指向两者的公共对象。
【问题讨论】:
-
nib 的所有者是哪个对象?
标签: cocoa interface-builder model-view-controller