2011-11-24 62 views
2

我有一個導航控制器和兩個視圖控制器('A','B')的故事板應用程序。UINavigationController在推送視圖後顯示黑屏

在故事板文件中: Navigationcontroller是初始視圖控制器。視圖控制器'A'以rootcontroller連接到Navigationcontroller。視圖控制器'B'在故事板中,但未連接到任何視圖控制器。

當我編程嘗試視圖控制器「B」從推到navigationcontroller視圖控制器內的「A」與:

B *controllerB = [[B alloc] init]; 
[self.navigationController pushViewController:controllerB animated:YES]; 

我得到的是一個黑色屏幕的轉變。

我在運行時檢查了視圖控制器A中的navigationController屬性,它不是零。 我沒有自己實例化navigationController,我讓故事板做這個工作(也許這就是問題所在)。但我認爲應該可以「手動」將視圖控制器推送到由故事板創建的導航控制器。

當我將一個按鈕上的segue連接到故事板中的'B'時,一切正常。 只能以編程方式它不起作用,只顯示導航控制器內部的黑屏。

也許有人可以幫我解決這個問題。

回答

2

接受的答案不適用於我。我已經使用instantiateViewControllerWithIdentifier導航到不同故事板中的視圖控制器。我正在使用xcode7.2和Swift。

我從故事板1導航,一些視圖控制器的按鈕操作。 目的地是Storyboard2的初始導航控制器。
我仍然黑屏。

問題是連接到第一個視圖控制器的storyboard2的導航控制器通過show鏈接。

解決方案:
刪除導航控制器和第一視圖控制器之間的鏈接。現在使用root view controller鏈接它。 (Ctrl +點擊導航控制器並將其拖動到視圖控制器並選擇選項「根視圖控制器」)

+0

此解決方案適用於我。 – zaheer

3

我還沒有使用故事板,所以這個答案是一目瞭然的文檔。看起來你不能從故事板中分配/初始化視圖控制器。您需要使用UIStoryboard實例的instantiateViewControllerWithIdentifier:方法,然後纔可以推動控制器。

+0

完美,就是這樣。 – nvano

相關問題