xib和SubUIView.class,如何在该类中添加属性?

时间:2012-11-14 07:42:40

标签: iphone ios uiview properties xib

我创建了三个文件,有

MDActionBar.h,
MDActionBar.m,
MDActionBar.xib

MDActionBar.h

#import <UIKit/UIKit.h>
@interface MDActionBar : UIView{
    NSString* _type;
}
@property (retain, nonatomic) IBOutlet UIButton *label_tips;    
@property (nonatomic,retain) NSString* type;
-(id)initWithFrame:(CGRect)frame;
@end

MDActionBar.m

#import "MDActionBar.h"

@implementation MDActionBar
@synthesize type = _type;
-(id)initWithFrame:(CGRect)frame withType:(NSString*)itype{
    self = [super initWithFrame:frame];
    if (self) {
        [[NSBundle mainBundle] loadNibNamed:@"MDActionBar" owner:self options:nil];
        NSArray *theView =  [[NSBundle mainBundle] loadNibNamed:@"MDActionBar" owner:self options:nil];
        self = [theView objectAtIndex:0];
        self.frame = frame;
    }
}

我像这样使用这个类:

MDActionBar* mdActionBar = [[[MDActionBar alloc]initWithFrame:UI_TOOLBAR_POSITION_DOWN withType:@"done"] autorelease];
mdActionBar.type = @"done";

似乎MDActionBar.m中没有名为'type'的属性,

NSLog(@"_type %@",self.type);

它始终在控制台中显示为null。

如果我加载了一个xib,并且这个xib是一个UIView,并且UIView中没有'type'属性,那么它会打印出来吗???

提前致谢。

2 个答案:

答案 0 :(得分:2)

你在init中传递类型但从不设置类型。你需要把它存放在某个地方。在init

self.type = itype

答案 1 :(得分:0)

将xib中的视图类从UIView更改为MDActionBar