2011-04-12 69 views
2

请原谅我,因为这个问题在这里已经被问了100次(并且我保证我已经读过每一个线程!),但我根本无法弄清楚如何正确加载NIB文件导入UIView。我尝试了两种方法(见下文),但似乎都不适合我。我有一个UINavController/UIViewController设置,我试图加载一个subclassed UIView到这些UIViewControllers之一的一个小区域。将NIB文件加载到UIView中时遇到问题

这个回答似乎合理,但我似乎无法得到它的工作: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 
} 

回答

1
@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