故事板中的initWithNibName方法

时间:2012-08-15 16:18:17

标签: xcode facebook storyboard

我正在按照Facebook的教程发布到用户的墙上:http://developers.facebook.com/docs/howtos/publish-to-feed-ios-sdk/ 虽然它是用.xib项目制作的,但到目前为止,我已经能够完成我的故事板项目。但是,我已经到了需要将一些代码放入initWithNibName:bundle:方法的地步,但我不能这样做,因为我使用的是storyboard。并且,由于很难判断何时调用该方法,我不能只编写一个名为initWithNibName的方法:bundle:并从其他方法调用它。如果有人知道如何解决我的问题,请说出来。感谢。

1 个答案:

答案 0 :(得分:39)

我自己也遇到了这个问题。故事板似乎不使用initWithNibName:bundle:,而是使用initWithCoder:(NSCoder *)aDecoderinitWithStyle:(UITableViewStyle)style

这两种方法的默认实现如下:

- (id)initWithCoder:(NSCoder *)aDecoder
{
    self = [super initWithCoder:aDecoder];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (id)initWithStyle:(UITableViewStyle)style
{
    self = [super initWithStyle:style];
    if (self) {
        // Custom initialization
    }
    return self;
}

我自己还没有使用initWithStyle版本,但我想它可以调用UITableViewController。如果有疑问,您可以简单地将两种方法添加到文件中,同时将NSLog()调用打印出方法的名称(或任何其他唯一字符串)。然后,您可以在模拟器中运行它以查看哪个被调用,并删除另一个。

我强烈建议您不要使用任何其他initWithNibName:bundle:方法调用init。最好将代码移动到正确的方法。