2012-01-07 95 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"]]; 
    } 
相关问题