【发布时间】:2012-02-28 04:48:30
【问题描述】:
我正在使用最新的 SDK 和 XCode 4.2 开发一个 iOS 应用。
我想在自定义 UIView 中使用自定义 XIB。
我的自定义 UIView:
@interface CoordinateView : UIView {
/**
*/
ARGeoCoordinate *geoCoordinate;
/**
*/
IBOutlet UILabel* title;
/**
*/
IBOutlet UILabel* subTitle;
/**
*/
IBOutlet UIImageView* image;
}
实施:
@implementation CoordinateView
@synthesize geoCoordinate;
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self)
{
// Initialization code.
//
NSArray* topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"CoordinateView" owner:nil options:nil];
for(id currentObject in topLevelObjects)
{
if ([currentObject isKindOfClass:[CoordinateView class]])
{
[self addSubview:currentObject];
break;
}
}
}
return self;
}
- (id)initForCoordinate:(ARGeoCoordinate *)coordinate
{
self.geoCoordinate = coordinate;
CGRect theFrame = CGRectMake(0, 0, BOX_WIDTH, BOX_HEIGHT);
self = [self initWithFrame:theFrame];
if (self)
{
title.text = geoCoordinate.title;
image.image = [UIImage imageNamed:[NSString stringWithFormat:@"03%d.jpg", geoCoordinate.id]];
}
return self;
}
初始化CoordinateView我使用initWithCoordinate方法。
调试我发现title 在initWithCoordinate 里面是零:
title.text = geoCoordinate.title;
我已经使用 Interface Builder 来“链接”IBOutlets。
我做错了什么?
【问题讨论】:
标签: ios cocoa-touch uiview xib