2016-04-10 26 views
1

Ich habe eine benutzerdefinierte Segue mit einem View-Controller und dann eine entsprechende benutzerdefinierte Unwind-Segue. Dieser Code hat in iOS 8 funktioniert und wird implementiert, indem Unterklassen von UIStoryboardSegue erstellt und die perform-Methode implementiert wird. Dann habe ich die folgende Methode in meiner benutzerdefinierten Navigation Controller außer Kraft setzensegueForUnwindingToViewController in iOS 9

func segueForUnwindingToViewController(toViewController: UIViewController, fromViewController: UIViewController, identifier: String) -> UIStoryboardSegue { 
    var segue: UIStoryboardSegue 
    if (fromViewController is MyViewController.self) { 
     segue = CustomSegue(identifier: identifier, source: fromViewController, destination: toViewController) 
     //Custom Unwind Segue 
    } 
    else { 
     var unwindSegue: UIStoryboardSegue = super.segueForUnwindingToViewController(toViewController, fromViewController: fromViewController, identifier: identifier) 
     //Normal Unwind Segue 
     segue = unwindSegue 
    } 
    return segue 
} 

In iOS 9 ist segueForUnwindingToViewController veraltet. Es funktioniert immer noch für den MyViewController CustomSegue; Das Standard-Abwicklungssegment funktioniert jedoch nicht mehr für andere Abwicklungssegmente. Obwohl das Aufrufen der Methode auf super ein Abwicklungssegment zurückgibt, tritt der Übergang nie auf, der Ansichtscontroller wird nie aufgerufen, und der Benutzer kann niemals zum vorherigen Bildschirm zurückkehren. Nur um klar zu sein, wenn ich einen normalen Show-Übergang verwende, ruft das entsprechende Abwicklungssegment die veraltete Methode auf, die die Methode auf Super aufruft und nicht funktioniert.

Antwort

0

Wenn Controller-B abwickelt A an die Steuerung dann in einem Controller:

@IBAction func viewController-B-DidExit(segue: UIStoryboardSegue) { 

     let controller = segue.sourceViewController as! viewController-B 

    } 

Dann in viewContoller B verbinden Sie das Objekt aus, um den Ausgang verlassen wollen.