我创建了三个文件,有
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'属性,那么它会打印出来吗???
提前致谢。
答案 0 :(得分:2)
你在init中传递类型但从不设置类型。你需要把它存放在某个地方。在init
self.type = itype
答案 1 :(得分:0)
将xib中的视图类从UIView更改为MDActionBar