1

我可能没有正确使用 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。我已经验证了控制器的 init 确实被调用了。

我对此有什么明显的遗漏吗?有没有更简单的方法来连接这两者?由于它们都是由 NIB 创建的,因此我没有一个指向两者的公共对象。

4

1 回答 1

0

尝试访问IBOutletinstad viewDidLoad

awakeFromNib被调用时,并不是所有的IBOutlets都被填充(即使文档似乎暗示了它)。

于 2009-05-12T22:00:38.173 回答