Interface Builder出口连接,但代码不?

时间:2012-05-28 07:04:28

标签: ios interface-builder iboutlet

这一直是我见过的最离奇的事情。所以我将从用IB创建的对象设置一个事件处理程序,然后我会编写一些代码:

[connectedObjectViaIB setBackgroundColor:[UIColor blackColor]];

也尝试过:

connectedObjectViaIB.backgroundColor = [UIColor blackColor];

即使事件处理程序被调用,并且确实经历了此代码(使用断点测试),背景也不会被设置。 Outlet似乎没有连接,即使它看起来是。这与其他几个IB对象和其他属性设置器一起发生。有人经历过这个吗?

1 个答案:

答案 0 :(得分:4)

从它的声音(代码正在运行,但没有看到任何更改),您过早地调用此代码。

在视图控制器中,在运行基础viewDidLoad之前,没有任何插座连接。在此之前,所有出口变量的值将为零。

像你这样的代码不起作用的常见情况是从prepareForSegue方法调用时 - 目标视图控制器的视图尚未加载,因此出口为零。

另一个是在初始化新控制器之后 - 再次,视图尚未加载。