クラスと xib ファイルで構成されるカスタム ビューがあります。私はそれを
[[NSBundle mainBundle] loadNibNamed:@"myViewNib" owner:self options:nil];
問題は、このカスタム ビューを継承する方法です。
myViewClass を継承していますが、上記のコードを使用してインスタンスを作成することはできません。方法が間違っていると思います。
1 つのオプションはMYBaseView
、.xib ファイルでそれ自体を作成しないことですが、それはサブビューです。これで簡単に継承MYBaseView
できます。
プログラムまたは Interface Builder でビュー オブジェクトを作成する場合、次のコードは正しく動作するはずです。
- (id)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
if (self) {
[self setUp];
}
return self;
}
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self setUp];
}
return self;
}
- (void)setUp
{
UIView *view = [[[NSBundle mainBundle] loadNibNamed:NSStringFromClass([self class]) owner:self options:nil] lastObject];
[self addSubview:view];
}
It should be:
myViewClass *newView = [[NSBundle mainBundle] loadNibNamed:@"myViewNib" owner:self options:nil];