iPhone - SubClassing UIToolbar正确的方式?

时间:2010-10-14 21:52:02

标签: iphone nib uitoolbar subclassing

  1. 我创建了一个名为的新类 CustomToolbar
  2. 然后我创建了一个空笔尖,添加了一个 它的工具栏,并设置工具栏 class to“CustomToolbar”。
  3. 在代码中初始化CustomToolbar的正确方法是什么,以便我的类使用nib文件?

    我已经编写了代码来执行此操作,但我知道这不是正确的方法并且有泄漏。

    @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
    

1 个答案:

答案 0 :(得分:1)

NIB会在您的自定义类上调用initWithCoder:,如下所示:

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

如果您真的想以现在的方式加载它,则需要retainloadNibNamed返回的对象。