2012-05-28 51 views
1

這是我見過的最奇異的事情。所以,我會去和設置從IB創建的對象的事件處理程序,然後我會寫這樣一些代碼:接口生成器插座連接,但代碼不是?

[connectedObjectViaIB setBackgroundColor:[UIColor blackColor]]; 

也試過:

connectedObjectViaIB.backgroundColor = [UIColor blackColor]; 

而且即使該事件處理程序被調用,並且通過這個代碼(用斷點測試)背景沒有被設置。即使它出現,Outlet似乎也沒有連接。這發生在其他一些IB對象和其他屬性設置器上。任何人都經歷過這個?

+1

行蹤是上面的代碼?它什麼時候執行? – jrturton

+0

你在使用故事板嗎? – geminiCoder

回答

4

從它的聲音(代碼正在運行,但沒有看到任何更改),您正在調用此代碼太早。

在視圖控制器中,沒有任何插座連接到底座viewDidLoad已運行之後。在此之前,所有出口變量的值將爲零。

一個像你的代碼不起作用的常見情況是從prepareForSegue方法調用 - 目標視圖控制器的視圖尚未加載,所以網點爲零。

另一個就是在初始化一個新的控制器之後 - 再次,視圖尚未加載。