我使用NIB文件的内容创建了一个UIView
对象,如下所示:
self.results = [[[NSBundle mainBundle] loadNibNamed:@"ResultsView" owner:self options:nil] lastObject];
self.results.frame = CGRectMake(0, 0, 320, 500);
但self.results
实际上是UIView
的子类:
@interface GameResultsView : UIView {
UILabel *title;
}
@property (nonatomic, retain) IBOutlet UILabel *title;
@end
我已通过Interface Builder将title
中定义的GameResults
属性与UILabel
对象相关联。但在执行期间,当视图分配给SIGABRT
时,应用程序会停止并显示self.results
消息:
-[UILabel copyWithZone:]: unrecognized selector sent to instance 0x4c2f780
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UILabel copyWithZone:]: unrecognized selector sent to instance 0x4c2f780'
似乎标签根本无法连接。这样做的正确方法是什么(如果有的话)?我的目的是将此自定义视图添加到UIScrollView
对象。
谢谢!
更新:我正在使用Xcode 4
答案 0 :(得分:1)
您可以像这样加载笔尖:
UINib * nib = [UINib nibWithNibName:aName bundle:nil];
NSArray * nibContent = [nib instantiateWithOwner:self options:nil];
for (id aView in nibContent) {
if ([aView isKindOfClass:[GameResultsView class]]) {
return aView;
}
}
这将返回GameResultsView的第一次出现。