无法将 NIB 文件加载到 UIView

Posted

技术标签:

【中文标题】无法将 NIB 文件加载到 UIView【英文标题】:Trouble loading NIB file into a UIView 【发布时间】:2011-04-12 06:17:25 【问题描述】:

请原谅我,因为这个问题在这里被问了 100 次(我保证我已经阅读了每个线程!),但我根本不知道如何正确地将 NIB 文件加载到 UIView 中。我尝试了两种方法(见下文),但似乎都不适合我。我有一个 UINavController/UIViewController 设置,我正在尝试将一个子类 UIView 加载到其中一个 UIViewControllers 上的一个小区域中。

这个答案似乎很合理,但我似乎无法让它发挥作用: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

【讨论】:

以上是关于无法将 NIB 文件加载到 UIView的主要内容,如果未能解决你的问题,请参考以下文章

无法从 nib 实例化 UIView。 “警告:无法加载任何 Objective-C 类信息”

在这个项目中,为啥我无法访问从 nib 加载的视图属性?

UIView 在加载 NIB 文件后立即显示?

从 nib 文件加载的 UIView,我可以将所有者设置为它自己的视图吗?

ios - 从 nib 文件加载解耦视图

XCode - 无法加载 NIB 文件包