-1

我创建了三个文件,有

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 中没有“类型”属性,那么它会打印 null ???

提前致谢。

4

2 回答 2

2

您在 init 中传递类型但从未设置类型。你需要把它存放在某个地方。在初始化

self.type = itype
于 2012-11-14T08:05:02.187 回答
0

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

于 2012-11-14T08:00:25.943 回答