(Swift) Unwind segue, wenn mehrere view-Controller führen zu gleichen Ansicht?
Ich versuche code ein hangman-Spiel und bin Probleme mit entspannen leitet über. Ich habe mehrere view-Controller, die alle letztendlich zu den gleichen anzeigen, wo der user spielt die eigentlichen Henker.
Allerdings, je nach der Präsentation controller, ich will das Spiel in verschiedenen "Modi" (sprich: multiplayer, single player, usw.). Ich bin versucht, fügen Sie eine play again Taste, ab -, um zur vorherigen Ansicht-controller, bin aber unsicher, wie um sich zu entspannen, wenn es mehrere Pfade, die der Benutzer hätte man zu dieser Ansicht.
In anderen Worten, meine app irgendwie geht:
Ein -> B -> C oder
Ein -> D -> C, wo C kann (im Idealfall) entspannen D oder B.
Ich Frage mich, was die beste Möglichkeit dies umzusetzen ist? Sollte ich einfach einbetten all meinen view-Controller navigation Controller? Oder gibt es einen Weg, um eine bestimmte view-controller basierend auf einer bestimmten Bedingung? Vielen Dank für jede Hilfe!!!
Du musst angemeldet sein, um einen Kommentar abzugeben.
The unwind segue Prozess wird in der Regel bestimmen die vorherigen UIViewController-Instanz automatisch. Der genaue Prozess beschrieben wird, in diesem Technischer Hinweis von Apple, aber in der Zusammenfassung:
So, die genaue Verfahren hängt davon ab, wie Sie präsentiert view-controller C - beispielsweise über einen modalen Präsentation segue oder einem push segue auf eine
UINavigationController
aber so lange die beiden B-und D-implementieren Sie die Aktion, die Sie entspannen sollte gut sein.Wenn Sie alle benutzerdefinierten Logik und aufrufen möchten, die entspannen segue programmgesteuert zu unterschiedlichen view-Controller, hier ist, wie:
Hinzufügen
unwindFromCViewController
sowohlBViewController
undDBViewController
:BViewController.swift
DViewController.swift
In Ihr storyboard, erstellen Sie diesen übergang und geben Sie eine id und einen link auf die Aktion, die Sie oben definiert
unwindFromCViewController
:Invoke the unwind segue from-code:
Mit, dass Sie sich entspannen können, um eine Vorherige Ansicht unabhängig davon, wo es herkommt.
Ich würde rufen Sie einfach im code
popViewController:animated
zu gehen, um den controller präsentiert, wenn Sie schob ihn auf die navigation stack, oderdismissViewController:animated
wenn es vorgestellt wurde Modal.