2016-05-26 8 views
0

enter image description hereWie ein View-Controller von mehreren Navigationscontroller segue und wenn präsentierte es zügig gehen zurück zu welcher View-Controller getan

Also ich habe zwei Navigationscontroller Hierarchien, die beide führen zu einem View-Controller. Ich übergebe diese One-View-Controller-Daten basierend darauf, welche man sie mit einem Push-Segment präsentiert. Wie verlasse ich den letzten View-Controller und gehe zurück zum Navigations-Stack, der ihn präsentiert hat? Ich muss keine Informationen zurückgeben, aber als ich versuchte, ein Abwicklungs-Segment zu machen, bekam ich einen Fehler mit der Aussage "Diese Klasse ist nicht Schlüsselcodierung-kompatibel für den Schlüssel doneButtonTapped" Ich habe versucht, unWind segue und popVC segue.

Ich glaube, das Problem könnte sein, dass Sie nicht zwei getrennte Navigationstapel haben können, die zu einem View-Controller führen, weil dieser View-Controller nicht weiß, zu welchem ​​Stack er gehört. Ich habe versucht zu recherchieren, konnte aber nur herausfinden, wie man mehrere modale Ansichten auf einmal abtut, nichts über die Entlassung eines VC, zu dem VC es damals überhaupt präsentierte.

Dank

Antwort

2

Sie müssen nur popViewController aufrufen, um viewcontroller zu dismiss. Es folgt automatisch dem Navigationsstack, der von Navigationscontroller A oder B erstellt wurde.

Wenn Sie zum ersten viewControler wechseln möchten, können Sie popToRootViewController anrufen.

Hope this :)

+0

helfen Es stellt sich tatsächlich heraus hatte ich doneButtonTapped Aktion zweimal auf der gleichen VC eingerichtet. Woops. Es ist 5 Uhr morgens und wenn ich anfange, solche Dinge zu tun, ist es Zeit, es eine Nacht zu nennen. Ihre Antwort hat mir geholfen zu bestätigen, was ich zu tun versuche. Vielen Dank! – JustinM

1

Gerade Storyboard-IDs für den Navigationscontroller eingestellt, sobald Sie die endgültigen View-Controller erreichen. Verwenden Sie einfach:

self.performSegueWithIdentifier(identifier: String, sender: AnyObject?) 

Verwendung prepareForSegue zu NavigationViewController erhalten Sie

wollen einen Bool Wert

Set und es entlang von Navigationsansicht Controller passieren, während auf dem letzten View-Controller durchquert. Zum Beispiel passieren dann, wenn von Nav A gehen und falsche passieren, wenn sie von Nav B. gehen Sobald Sie zum letzten Viewcontroller zu erhalten, verwenden Sie diesen booleschen Wert:

if boolValue == true { 
self.performSegueWithIdentifier(identifier: "identifierforNavA", sender: AnyObject?) 
} 
else { 
self.performSegueWithIdentifier(identifier: "identifierforNavB", sender: AnyObject?) 
} 

Vergessen Sie nicht prepareForSegue für performSegueWihIdentifier zu implementieren Arbeit

Verwandte Themen