2012-03-07 318 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文件已被添加到目標的「複製軟件包資源」部分的「構建階段」部分中。 (並仔細檢查它已被添加到導航菜單資源中)。