我可能没有正确使用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创建的,因此我没有一个指向两者的公共对象。
答案 0 :(得分:0)
尝试访问IBOutlet
instad中的viewDidLoad
。
调用awakeFromNib
时,不会填充所有IBOutlets
(即使文档似乎暗示了它)。