2012-01-07 49 views

回答

127

使用的初始化是initWithCoder:

- (id)initWithCoder:(NSCoder *)decoder 

然後事後你也將獲得一個awakeFromNib消息。

+3

我是唯一覺得奇怪的是默認的(?)init不是從initWithCoder調用的嗎? – brianestey 2012-03-08 03:32:59

+2

不,它不是指定的init,inits應該使用(通常)更多的參數調用另一個init,然後調用[super init]。在這種情況下,似乎initWithCoder是指定的init – MrJD 2012-04-16 14:19:50

+7

initWithCoder:是任何實現NSCoding的類的指定初始值設定項。 – 2012-05-29 06:21:31

5

我相信這是awakeFromNib

+0

awakeFromNib,因爲我們的'UIViewControllers'被調用過在你的.storyboard文件中被「封裝」(相當於「舊」的nib) – Besi 2012-01-21 21:52:32

+0

'awakeFromNib'和'init *'方法之間的區別(可能很重要)是它們返回一個實例'awakeFromNib'沒有。 – Matthew 2014-04-22 13:14:45

0

這是- (id)initWithCoder:(NSCoder *)decoder

所以,如果你要做自定義的初始化,假設使用自定義傳呼機控制器,你需要做的還有像

- (id)initWithCoder:(NSCoder *)decoder { 

     self = [super initWithCoder:decoder]; 
     return [self initWithViewControllers:@[self.playerViewController, self.categoriesViewController] 
        andTitles:@[@"Player",@"Categories"]]; 
    } 
相關問題