【发布时间】:2013-01-22 00:41:00
【问题描述】:
我有一个BaseClass UIViewController 类。它运作良好。 BaseClass 有 BaseClass.xib
然后我创建了该基类的子类。
结果没有连接任何插座。
我放了
- (id)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
return self;
}
是的,就是这样。它被称为。我不确定 aDecoder 是什么。我认为这是 childClass 的 XIB 的表示,它不存在。我想用super的xib初始化super。
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
}
return self;
}
永远不会被调用。
事实上,我自己也很困惑。当我们有 xib 时,似乎 -(id)initWithCoder:(NSCoder *)aDecoder 是被调用的那个。所以我想知道 initWithNibName 是干什么用的?
我试过了
- (id)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithNibName:NSStringFromClass([super class]) bundle:nil];
return self;
}
【问题讨论】:
-
如何初始化视图控制器?使用
UIViewController的initWithNibName:bundle:或NSBundle的loadNibNamed:owner:?
标签: objective-c xcode4.5