IBOutlet未在Cocoa MVC项目中设置

时间:2009-05-12 21:54:36

标签: cocoa interface-builder model-view-controller

我可能没有正确使用IBOutlet,或者其他一些关于NIB文件如何工作的微妙之处给我带来了麻烦 - 任何帮助都会非常感激(请随意提出另一种方法来完成我想要的事情。)

我有一个View对象和一个Controller对象。两者都在NIB中。当加载NIB并在'awakeFromNib'回调中初始化View时,也会调用Controller的init。 我需要一种方法来连接这两个对象 - 具体来说,启用'View'对象来调用Controller上的函数。

基于在线文档,获得这些连接的方法是在View中定义IBOutlet并将其连接到Interface Builder中的Controller。所以我创建了一个

IBOutlet Controller* _controller;

在View界面中,通过从View到Controller的连接并将_controller出口分配给Controller(Interface Builder中的蓝色通用对象框),以图形方式将其连接到Interface Builder中的Controller对象。

在运行时,_controller始终为_nil。我已经确认控制器的init确实被调用了。

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

1 个答案:

答案 0 :(得分:0)

尝试访问IBOutlet instad中的viewDidLoad

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