2013-02-27 45 views
0

相關的我有一個UIViewController子類,我實例化和試圖推到navigationController像這樣筆尖:_loadViewFromNibNamed叫即使沒有用的UIViewController

MenuVC *menuVC = [[MenuVC alloc] init]; 
[self.navigationController pushViewController:menuVC animated:YES]; 

我沒有與此相關的一個筆尖文件類,所以只是做一個簡單的..alloc] init]而不是initWithNib:bundle:

我仍然在pushViewController電話獲取崩潰和微量說這

reason: '-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "MenuVC" nib but the view outlet was not set.' 

我不明白爲什麼這會發生。我有其他視圖控制器加載罰款與相同的方法。

+0

MenuVC是否會重寫init方法? – Fraggle 2013-02-27 21:34:10

+0

@Fraggle不,它不是 – unspokenblabber 2013-02-27 21:44:52

+1

應用程序包中是否有舊的MenuVC.nib? – 2013-02-27 22:11:29

回答

0

這可能不是一個「答案」,但已解決。我只是刪除了整個文件,並添加了一個不同名稱的新文件,它工作。

1

真正的問題是,ViewController中有自帶的默認視圖,不知何故IB的類是連接視圖 - >視圖失蹤,因此錯誤

2

我想我發現蘋果的這個問題的答案文檔:

視圖控制器具有相關聯的筆尖文件,如果nibName屬性返回一個非零值,如果視圖控制器是從故事板實例,如果明確指定它使用initWithNibName nib文件發生:bundle:method,或者如果iOS在應用包中找到一個名爲基於視圖控制器類名的nib文件。

因此,這意味着OS實際上是嘗試,如果它發現一個加載筆尖。我的捆綁包中有一個與VC相同名稱的筆尖,但沒有關聯,它是File Owner

+0

在我的情況下,nib文件保留在構建文件夾中,即使我已經從項目中刪除了相應的xib文件。新鮮和乾淨的構建解決了這個問題:Cmd + Shift + K,Cmd + R。 – pjuzeliunas 2017-11-27 13:58:03

相關問題