2012-05-30 47 views
0

我想隱藏控制器init方法內的按鈕。但它不工作。我已經創建了一個圖像的插口從控制器訪問它。不知道爲什麼圖像不被隱藏。但我可以在viewdidload方法內部完成。是否因爲視圖仍未加載?訪問UI組件內部控制器init方法

回答

2

是的,視圖將在調用viewdidload時加載。因此對現有UI的任何更改都應該在視圖中調用,以便加載或查看將會出現

1

您所討論的UI組件是您正在創建的UIViewController所擁有的UIView的所有子視圖。但是那個UIView及其子視圖並不是在init方法被調用時創建的,所以你不能在那裏改變它們。

viewDidLoad對於那些只需要查看已創建後,一旦運行任何代碼的適當位置,但已經顯示之前。

viewWillAppear:viewDidAppear:將在每次視圖即將或分別再次變爲可見時運行。

0

實際上,當loadView消息被髮送到控制器的整個視圖層級將被加載。第一次訪問控制器視圖時,該消息也會自動發送。這就是爲什麼您的按鈕消息在init方法中被丟棄的原因,因爲該對象尚未從xib/storyboard「解凍」。是的,進行視圖定製的適當位置將在viewDidLoad委託方法內。

PS。另外...如果你想讓按鈕在初始化時被隱藏,爲什麼你不要在你的xib/storyboard中檢查它的hidden屬性?