UIView独自の XIB を持つベース クラスがあります。このクラスを呼び出しましょうMyClass。だから私はMyClass.xib、MyClass.hそしてを持っていMyClass.mます。
ストーリーボードに UIView オブジェクトがあり、そのオブジェクトのクラスを に設定しましたMyClass。
新しいUIViewXIB を作成し、XIB 内でファイル所有者のクラスを に変更しましたMyClass。XIB 内でさらに接続を行う必要があるかどうかはわかりません。
私が欲しいのはこれです:ストーリーボードが読み込まMyClass.mれ、それが読み込まれますMyClass.xib。そのため、この初期化コードがあります:
- (instancetype)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
if (self) {
NSString *className = NSStringFromClass([self class]);
self.view = [[[NSBundle mainBundle] loadNibNamed:className owner:self options:nil] firstObject];
[self addSubview:self.view];
return self;
}
return nil;
}
問題は、このコードが無限ループに入ることです。もう一度loadNibNamed電話をかけるinitWithCoder:と、アプリがクラッシュします。
それ、どうやったら出来るの?なぜループなのか、xib 内で作成する必要がある接続は他にありますか?