2016-04-19 71 views
2

零我有兩個故事板(Main和SB2)navigationController是在迅速

我有在主情節串連圖板和SB2 一個視圖控制器的一個予執行

let SB2 = UIStoryboard(name: "SB2", bundle:nil) 
let vc : UIViewController = self.SB2.instantiateViewControllerWithIdentifier("VC2") 
self.showViewController(vc, sender: self) 

第二ViewController中加載之後和該命令運行時,它打印零:

print(self.navigationController) // prints nil 

在SB2(第二情節串連圖板)我點擊了的ViewController(VC2)中,然後點擊編輯>嵌入在>導航結紮控制器。這放置了一個導航控制器的故事板和根視圖控制器是VC2。我三重檢查了這一點。它連接的第一個標誌是頂部的灰色導航欄。第二個是有導航控制器連接到VC2的segue,我可以檢查的最後一個地方是導航控制器實用程序。

我在想,也許我不應該直接從VC1轉換到VC2,而是VC1到NavigationController,但是我不知道如何做到這一點,或者如果它甚至可能。

我不知道什麼時候sb2打印無導航控制器連接到它的臉。任何幫助表示讚賞。

+0

你需要給*導航控制器*在故事板的標識符,然後實例*的是*代替VC2。 –

+0

問題就解決了。我不敢相信我花了三個小時。我所要做的只是 讓nvc:UINavigationController = self.SB2.instantiateViewControllerWithIdentifier(「NVC」)as! UINavigationController 非常感謝! –

回答

3

您需要將視圖控制器(VC2)推到導航控制器上。

let SB2 = UIStoryboard(name: "SB2", bundle:nil)v 
let nvc = SB2.instantiateViewControllerWithIdentifier("NVC") as! UINavigationController 
let vc : UIViewController = self.SB2.instantiateViewControllerWithIdentifier("VC2") 
nvc.pushViewController(vc, animated: true) 

然後在您的視圖控制器嘗試調用

self.navigationController