2015-07-19 4 views
7

In meiner einfachen app, ich habe einige Controller mit grundlegenden segues zwischen ihnen erstellt:Wie unwindForSegue: in Richtung ViewController: funktioniert?

Yellow Controller -> BlueController -> GreenController -> OrangeController. Jeder von ihnen hat seine eigene benutzerdefinierte Klasse.

Von OrangeController Ich habe unwindSegue meiner YellowController. Es ist okay.

Innerhalb jeder Klasse I setzen:

override func unwindForSegue(unwindSegue: UIStoryboardSegue, towardsViewController subsequentVC: UIViewController) { 
    print(unwindSegue) 
    print(subsequentVC) 
} 

Aber es war überhaupt nicht genannt. Warum? Welche Demo sollte ich vorbereiten, um diese Funktionalität zu testen?

Dasselbe mit:

func allowedChildViewControllersForUnwindingFromSource(source: UIStoryboardUnwindSegueSource) -> [UIViewController] 
func childViewControllerContainingSegueSource(source: UIStoryboardUnwindSegueSource) -> UIViewController? 
+1

Ja „Ich habe einige Controller mit grundlegenden segues zwischen ihnen geschaffen haben“, aber _what_ Art von Controllern sie sind und welche Art von segues sind sie? 'unwindForSegue' wird nur bei _parent view controllern_ aufgerufen. Wenn Sie beispielsweise nichts als modale (Präsentations-) Übergänge machen, wird es überhaupt nicht aufgerufen, weil das Abwickeln nur aus einer einfachen Entlassung besteht. – matt

Antwort

7

die Methode implementieren mit IBAction Rückgabetyp

-(IBAction) unwindForSegue:(nonnull UIStoryboardSegue *)unwindSegue towardsViewController:(nonnull UIViewController *)subsequentVC 

In Storyboard, verbindet die Steuer zum Ausgang Aktion (die für die Rückwirkung verantwortlich ist) im Viewcontroller. enter image description here

enter image description here

+3

Was ist der Unterschied zwischen normalen 'unwindForSegue'? –

Verwandte Themen