2011-05-09 26 views
0

大家好。最近一直困擾我的東西就是我放在一起的這個自定義電影播放器​​。它主要基於一個工作的,NGMoviePlayerpresentModalViewControllerAnimated:給出白屏

問題是這樣的:我有一個UIKit友好的資源包中的.xib。當我打電話:

[MyMoviePlayerViewController initWithNibName:@"MyMoviePlayerViewController" 
bundle:[NSBundle bundleWithPath: 
     [[NSBundle mainBundle] bundlePath] 
      stringByAppendingPathComponent:@"MyMoviePlayerViewController.bundle"]]; 

..on我的自定義類,然後訪問view(因此調用loadView)不拋出任何錯誤,但也沒有真正正確加載網點。我看到一個白色的屏幕,調試顯示所有的視覺元素都是0x0,但沒有錯誤。

編輯:我現在也試過在我的目標應用程序的資源包之外加載.xib,同樣的事情發生(白屏)。

特定的人我一直在尋找要麼是:

  • Could not load NIB <nibname>...如果它不是在所有發現的,或
  • ...loaded the <nibname> NIB but the view outlet was not set,如果它被發現,但沒有正確連接

的xib在本地應用程序中(我瞭解靜態庫不能包含xibs)。我一直在使用與的NGMoviePlayer作者提供的NGMoviePlayerDemo項目此相同的資源包嘗試,它確實拋出一個錯誤:

Could not load NIB in bundle: 
'/Users/.../MyMoviePlayerViewController.bundle (not yet loaded)' 
with name 'MyMoviePlayerViewController' 

我已導航的路徑將顯示爲捆綁和存在在該位置的MyMoviePlayerViewController.xib文件。

我也嘗試過使用bundle:nil以防Xcode將bundle目錄的資源與主目錄的資源合併在一起。這兩種情況下都不會出現錯誤,並在我的實際項目中顯示白色屏幕。這兩種情況在NGMoviePlayerDemo項目中都會出現Could not load NIB錯誤。

編輯:我已經嘗試了與NGMoviePlayerDemo應用程序中的資源包分開的相同的.xib,它工作正常。

所有的輸入是非常感謝。

回答

0

解決方案:請注意Unknown class <classname> in Interface Builder file.消息。

我在靜態庫中有電影播放器​​的代碼,電影播放器​​的父視圖控制器作爲外部標題包含在項目中,但子視圖不包含在標題中,所以它們沒有沒有正確定位。由於他們在我的目標應用程序中引用的唯一位置在.xib文件中,因此這些子類沒有編譯錯誤,但是當加載.xib時,無法找到這些類,因此它們的屬性都不是被設置。而恰恰恰巧包括了玩家的所有控制,這可能會讓初始化代碼無聲無息地倒下。

我將子類中的所有代碼和ivars合併到父級電影播放器​​類中,現在它工作正常:)