2012-03-07 168 views
0

我想从我的UIViewController加载xib文件。无法从UIViewController加载xib文件

在.H

UIView *myView; 

@property(nonatomic, retain) IBOutlet UIView *myView; 

在我的.m

@synthesize myView; 

if([[NSBundle mainBundle] loadNibNamed:@"MyView" owner:self options:nil]) { 
      [self.myView setFrame:CGRectMake(0, 0, 320, 480)]; 

      [[UIApplication sharedApplication].keyWindow addSubview:self.myView]; 

} 

从同一UIViewController加载和删除厦门国际银行文件。在上述情况下,我使用了相同的代码,并且它工作正常。它的一个特殊的xib文件似乎有问题。我检查过,窗口是否为零。但不是。无法找出问题所在。

编辑:有没有可能是self是越来越提前发布

加载我使用相同的代码加载另一个厦门国际银行文件,此XIB文件之前。这工作正常。我正试图在当前的视图上加载当前的xib文件。

+1

您是否检查过xib名称?有时我们错过了导致重大问题的小事! – cocoakomali 2012-03-07 18:57:11

+0

我已经这样做了 – 2012-03-08 04:20:30

+0

您是否检查过您在IB中的绑定? – Geoffroy 2012-03-08 07:13:58

回答

1

试试这个:

if([[[NSBundle mainBundle] loadNibNamed:@"MyView" owner:self options:nil] objectAtIndex:0]) { 
      [self.myView setFrame:CGRectMake(0, 0, 320, 480)]; 

      [[UIApplication sharedApplication].keyWindow addSubview:self.myView]; 

} 

我认为这个问题可能是“loadNibNamed”返回顶层对象的一个​​NSArray。

0

如果您通过另一个UIView加载此视图,并且该UIView加载正确,那么您可以添加此视图作为UIView的子视图。

+0

这与问题无关。 – jrturton 2012-03-08 09:17:30

+0

但是,这是工作 – 2012-03-08 09:20:11

+0

但它似乎并不是答案,尽管它在我的情况下工作得很好。 – 2012-03-08 09:55:51

1

也许确保您的xib文件已被添加到目标的“复制软件包资源”部分的“构建阶段”部分中。 (并仔细检查它已被添加到导航菜单资源中)。