12

私は何か重要なものを見逃しています。それが何であるか正確にはわかりません。

カスタム ビュー サブクラスがあります。そのレイアウトを設計するために xib ファイルを作成しました。4 つのボタンをコンセントとしてクラスに接続しました。

#import <UIKit/UIKit.h>

@interface MCQView : UIView
@property (strong, nonatomic) IBOutlet UIButton *btn1;
@property (strong, nonatomic) IBOutlet UIButton *btn2;
@property (strong, nonatomic) IBOutlet UIButton *btn3;
@property (strong, nonatomic) IBOutlet UIButton *btn4;

私はそれから持っています

#import "MCQView.h"

@implementation MCQView
@synthesize btn1,btn2,btn3,btn4;

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        [self addSubview:[[[NSBundle mainBundle] loadNibNamed:@"MCQView" owner:self options:nil] objectAtIndex:0]];
            NSLog(@"%@", btn1);

    return self;
}

次に、次の方法でビューを別のビュー コントローラーに追加しますinitWithFrame

btn1 が存在するかどうかを確認するためにログに記録しようとすると、null が出力されます。初期化していないためだと思いますが、新しいボタンとして作成するとxibのすべてが役に立たなくなることを考えると、その方法が正確にはわかりませんか?

4

4 に答える 4

4

これは簡単です:

view = [[[NSBundle mainBundle] loadNibNamed:@"MCQView" owner:self options:nil] objectAtIndex:0]
于 2014-01-27T18:41:06.623 に答える