2013-07-15 48 views
3

我正在爲我的應用程序實現超時操作。我提到這個計算器線程iOS perform action after period of inactivity (no user interaction)並沒有完全地按照同樣的方法,但我的應用程序崩潰時,它即將在這裏過渡到一個新的視圖控制器從故事板實例化視圖控制器時,應用程序崩潰

UIStoryboard *myStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:NULL]; 

UIViewController *cont = [myStoryboard instantiateViewControllerWithIdentifier:@"abc"]; 

我已經給下故事板ID我的故事板文件名爲abc 。有沒有其他的方式來加載視圖控制器?這有什麼問題?爲什麼我的應用崩潰了?

這是從控制檯崩潰的消息:

終止應用程序由於未捕獲的異常「NSInternalInconsistencyException」,理由是:「無法加載NIB捆綁」

我沒有。 xib文件與這個控制器相關我試圖加載,我只有abc.h和abc.m文件,但在我的故事板文件中,我有一堆視圖控制器,並且在那裏,我指定了其中一個類視圖控制器爲「abc」。是不是夠了?或者,什麼是加載我的視圖控制器的最佳方式?使用segue?

+0

任何崩潰消息? –

+0

請從控制檯發佈您的崩潰日誌和錯誤。 –

+0

請從調試窗口中發佈崩潰消息 – ApolloSoftware

回答

3

關於您的例外情況 - 您的故事板可能未複製到主包中。請參閱this

另外,方法instantiateViewControllerWithIdentifier使用故事板本身定義的Storyboard ID而不是視圖控制器的名稱。有關如何從故事板實例化特定視圖控制器的更多信息,請參見this;如果要初始化初始視圖控制器(在故事板中箭頭指向的那個控制器),請使用instantiateInitialViewController

編輯:由於iOS中的錯誤導致異常,其中帶有名稱修飾符的故事板(例如Storyboard_ipadStoryboard_iphone)在[UIStoryboard storyboardWithName:bundle:]內部的iOS機制中引起混淆。解決方法是避免使用這種命名約定,並可能編寫一個幫助函數,通過檢查當前設備慣用語來選擇要加載的故事板名稱。

+0

我的故事板被複制到主包中。我只是再次驗證。 – user1982519

+1

1.嘗試清理您的項目和您的項目構建目錄(清理時按alt鍵)以確保故事板被複制。 2.只是踢 - 你碰巧有一個MainStoryboard〜ipad.storyboard文件嗎? – StatusReport

+0

我試過清洗它,但沒有幫助。是的,我有MainStoryboard_iPhone和MainStoryboard_iPad故事板文件。 – user1982519

相關問題