请原谅我,因为这个问题已经在这里被问了 100 次(我保证我已经阅读了每个线程!),但我就是不知道如何正确地将 NIB 文件加载到 UIView 中。我尝试了两种方法(见下文),但似乎都不适合我。我有一个 UINavController/UIViewController 设置,我正在尝试将子类 UIView 加载到其中一个 UIViewController 上的一个小区域中。
这个答案似乎很合理,但我似乎无法让它发挥作用:iPhone - Load a UIView from a nib file?
// ViewController.m
localAssetUpdater = [[LocalAssetUpdater alloc] initWithFrame:[self.view frame]];
// LocalAssetUpdater.m
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[[NSBundle mainBundle] loadNibNamed:@"LocalAssetUpdater" owner:self options:nil];
[self reset];
[self beginLoad];
}
return self;
}
//OR:
// ViewController.m
localAssetUpdater = [LocalAssetUpdater myView];
// LocalAssetUpdater.m
+ (LocalAssetUpdater *) myView
{
NSArray* array = [[NSBundle mainBundle] loadNibNamed:@"MyView" owner:nil options:nil];
return [array objectAtIndex:0]; // assume that MyView is the only object in the xib
}
最佳答案
@implementation MyView
+ (MyView*) myView
{
NSArray* array = [[NSBundle mainBundle] loadNibNamed:@"MyView" owner:nil options:nil];
for (id object in array) {
if ([object isKindOfClass:[YourClassName class]])
self = (YourClassName*)object;
}
}
@end
关于iphone - 将 NIB 文件加载到 UIView 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5631133/