1
  1. CustomToolbarという名前の新しいクラスを作成しました
  2. 次に、空のペン先を作成し、それにツールバーを追加して、ツールバークラスを「CustomToolbar」に設定しました。

私のクラスがnibファイルを使用するようにCustomToolbarInコードを初期化する適切な方法は何ですか?

私はすでにそれを行うためのコードを書いていますが、それが正しい方法ではなく、リークがあることを知っています。

@interface CustomToolbar : UIToolbar {
}
@property (nonatomic, retain) IBOutlet UIBarButtonItem *button;
@end

@implementation CustomToolbar
- (id)initWithDelegate
{
     NSArray *objects = [[NSBundle mainBundle]
      loadNibNamed:@"CustomToolbar" 
      owner:nil 
      options:nil];
    if (self = (CustomToolbar*) [objects objectAtIndex:0])
    {
        //do some work here
    }
    return self;
}
@end
4

1 に答える 1

1

NIB はinitWithCoder:、次のようにカスタム クラスを呼び出します。

- (id)initWithCoder:(NSDecoder*)aDecoder {
    self = [super initWithCoder:aDecoder];
    if( self ) {
        // Do something
    }
    return self;
}

現在の方法で本当にロードしたい場合は、retainから返されたオブジェクトが必要loadNibNamedです。

于 2010-10-14T22:54:00.433 に答える