2016-04-19 10 views
2

Ich habe zwei Storyboard (Haupt- und SB2)Navigation ist gleich Null in SWIFT

Ich habe einen View-Controller in der Storyboard in Haupt- und in SB2 I

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

nach den zweiten Viewcontroller Lasten auszuführen und dieser Befehl ausgeführt wird, druckt es nil:

print(self.navigationController) // prints nil 

In SB2 (zweites Drehbuch) ich auf dem Viewcontroller (VC2) angeklickt und dann klickte auf Editor> Embed In> Nav Kontroller. Dadurch wurde ein Navigationscontroller mit dem Storyboard platziert und der Stammansicht-Controller ist VC2. Ich habe das dreifach überprüft. Das erste Zeichen dafür war die graue Navigationsleiste oben. Das zweite ist, dass es einen Übergang gibt, der den Navigationscontroller mit VC2 verbindet, und der letzte Ort, an dem ich hätte prüfen können, ist in den Dienstprogrammen der Navigationssteuerung.

Ich denke, dass ich vielleicht nicht direkt von VC1 zu VC2 wechseln sollte, sondern VC1 zu NavigationController, aber ich weiß nicht, wie man das macht oder ob es überhaupt möglich ist.

Ich weiß nicht, wenn sb2 Nils druckt, wenn ein Navigationscontroller an ihn angeschlossen ist. Jede Hilfe wird geschätzt.

+0

Sie anrufen müssen die * Navigationscontroller * eine Kennung im Storyboard, und dann instanziiert * so * statt VC2 geben. –

+0

Und das Problem ist gelöst. Ich kann nicht glauben, dass ich drei Stunden damit verbracht habe. Alles, was ich tun musste, war Lassen Sie Nvc: UINavigationController = self.SB2.instantiateViewControllerWithIdentifier ("NVC") als! UINavigationController Sehr geschätzt! –

Antwort

3

Sie müssen den View Controller (VC2) auf den Navigationscontroller drücken.

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) 

Dann in Ihrem View-Controller versuchen

self.navigationController 
Verwandte Themen