2009-01-29 15 views
20

我使用界面構建器設置了選項卡欄控制器,並且每個選項卡欄項都鏈接到視圖控制器(4個選項卡,4個視圖控制器)。我想知道,如果接口生成器使用的-init方法來初始化視圖控制器,因爲顯然這種方法不會被調用:Interface Builder是否使用-init方法初始化視圖控制器?

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil; 

...我想要做一些初始化。我無法將其添加到-viewDidLoad,因爲它在內存警告的情況下被召回。任何想法?

回答

47

的對象inited有:

- (id)initWithCoder:(NSCoder *)inCoder; 

所以,你可以重寫或者-initWithCoder:後做你的設置被稱爲是不是你可以使用一個問題:

來自NSNibAwaking協議的
- (void)awakeFromNib; 

10

我也打算提到initWithCoder vs awakeFromNib

通常,在爲對象或設置值分配內存時,我會覆蓋initWithCoder。當您連接IBOutlets後需要進行一些設置時,請覆蓋awakeFromNib。在此之前,其他視圖和控件的IBOutlet實例變量未連接。

相關問題