0

xib ファイルを使用して BOHeaderView というカスタム UIView を作成しました。この BOHeaderView を他の UIViewController の xib にロードする必要があります。

1 つの ViewController nib ファイルに UIView を追加して、そのタイプを customView に変更してみました。しかし、カスタム ビューを読み込めません。以下は customView の初期化コードです。

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) 
    {
        // Custom initialization
        [[NSBundle mainBundle] loadNibNamed:@"BOHeaderView" owner:self options:nil];
    }
    return self;
}

- (void) awakeFromNib
{
    [super awakeFromNib];

    // commenters report the next line causes infinite recursion, so removing it
    [self customizeHeadView];
}
4

2 に答える 2

0

のある行はNSBundle、ペン先をロードするクラスに含まれている必要があります。そのクラスで書く必要があります:

CustomView *customView = [[NSBundle mainBundle] loadNibNamed:@"BOHeaderView" owner:self options:nil].lastObject;

それはを返しますNSArray、それはあなたが必要とする理由ですlastObjct

于 2013-01-02T12:58:05.943 に答える
0

あなたはこのようにすることができます:

NSArray *nibViews = [[NSBundle mainBundle] loadNibNamed:@"BOHeaderView" 
                                              owner:[[BOHeaderView alloc] init]
                                            options:nil];
BOHeaderView *infoView = [nibViews objectAtIndex:0];
infoView.frame = CGRectMake( put your rect here );
[self addSubview:infoView];

編集

あなたが言おうとしていることを意味します:複数のView ControllerからカスタムUIViewを使用する

私は同じ問題を抱えていて、この方法で解決しました:

に以下のコードを書きましたbuttonClick

 RatingView *rateView = [[RatingView alloc] initWithNibName:@"RatingView" bundle:[NSBundle mainBundle]];
 rateView.view.frame = CGRectMake(0,45,1024, 648);
 [self.view addSubview:rateView.view];

ハッピーコーディング!!

于 2013-01-02T13:00:43.633 に答える