2013-12-15 42 views
0

早些時候,我創建了一個名爲FTIBTagsActivityViewController的新文件幷包含一個筆尖。玩了一段時間後,我決定將用戶界面移到我的主要故事板。所以我刪除了.xib文件,在我的主要故事板中重新創建UI,給了界面FTIBTagsActivityViewController類,並試圖使用。ViewController正在加載一個不敏感的筆尖

但是,每當我試圖呈現這個視圖控制器:

- (UIViewController *) activityViewController 
{ 
    FTIBTagsActivityViewController *tavc = [[FTIBTagsActivityViewController alloc] init]; 
    tavc.tags = tagsSplit; 
    return tavc; 
} 

(此代碼被返回給UIActivityViewController,然後它試圖模態呈現它)。

我的應用程序與此崩潰。

2013-12-15 18:07:55.982 Mignori[3855:60b] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "FTIBTagsActivityViewController" nib but the view outlet was not set.'

它清楚地說,它有一個筆尖稱爲FTIBTagsActivityViewController,但也有這兩離奇的問題:

  • 即廈門國際銀行已不存在,它的UI已經被移動到我的故事板。
  • 我實際上擺脫了引用FTIBTagsActivityViewController的每個UI元素 - 也就是說,爲了測試,我從故事板中刪除了界面,並且我的應用程序仍在崩潰。

我看過我的項目目錄,沒有FTIBTagsActivityViewController.xib。它本質上是成功加載了一個不存在的xib。

我試圖清理我的項目並重新編譯,但是這個錯誤仍然存​​在。幫幫我?

+0

您是否嘗試刪除〜/ Library/Developer/Xcode/DerivedData目錄? – rocky

+0

您可能需要清理和構建,重置您的模擬器並刪除派生的數據文件夾才能使用。我有類似的問題,我以同樣的方式解決。 (我假設你沒有在你的'init'方法中引用nib。) –

+0

謝謝你們,我正在嘗試你的建議。但是,是的,我檢查了一倍,沒有任何引用我的視圖控制器的方式暗示它會來自一個筆尖。編輯 - 刪除派生的數據目錄,並做一個乾淨的構建沒有辦法。猜猜我會重新啓動我的手機... –

回答

2

這樣一個奇怪的問題,我也跟着下面的步驟來得到它的工作:

  1. 清空導出的數據文件夾(〜/資源庫/開發/ Xcode中/ DerivedData目錄?)按洛奇的建議。
  2. 按照Aaron Brager的建議清理了該項目。
  3. 從我的手機中刪除了該應用程序。
  4. 重新啓動手機。
  5. 再次運行該項目。
+0

很高興它的工作...不要忘記提交一個錯誤報告,因爲你有崩潰日誌:) –

0

使用UIstoryboard類加載視圖控制器。使用alloc init加載視圖控制器將使它搜索不在那裏的anib。那麼如果你沒有實現loadView,將不會有視圖。

+0

我覺得我的新(雖然不相關的問題)正在導致,因爲我正在做alloc init。使用UIStoryboard加載UIViewController的正確方法是什麼?當我輸入我的代碼並按esc時,我似乎無法找到正確的方法。 –

+0

看到我的新答案 – Joride

1
  1. 創建使用uistoryboard [UIStoryboard storyboardWithName:@ 「yourstoryboardname」 束:一個NSBundle mainBundle]。

  2. 確保您的視圖 - 控制在你的故事板的標識符,並將其設置是正確的類

  3. 呼叫instantiateViewControllerWithIdentifuer的:在創建的故事板@「yourId」]在1