2016-04-28 5 views
1

Ich habe einen UIViewController mit einer Schaltfläche. Diese Schaltfläche ist mit einem anderen UIViewController verbunden und das Segment hat den Typ Show. Es sieht irgendwie wie folgt aus:Wie kann ich überprüfen, ob mein UIViewController angezeigt wurde, wenn er dem Benutzer in meiner Swift App angezeigt wird?

self.performSegueWithIdentifier("myIdentifier", sender: user) 

und die Funktion prepareForSegue ist:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if (segue.identifier == "myIdentifier"){ 

     if let frD = segue.destinationViewController as? MyNextClass, 
     ... 

Nun, wenn der Benutzer den Knopf drückt, der neue UIViewController erscheint auf Vollbild aus. Es hat auch eine Schaltfläche namens exitButton, die eine Sache ist:

@IBAction func exitbuttonaction(sender: AnyObject) { 

    self.dismissViewControllerAnimated(true, completion: nil) 
} 

Wenn Benutzer sie drückt, - sie diese View-Controller zurückzuweisen und sie sehen die vorherige. Dieser vorherige Container verfügt über eine viewWillAppear-Funktion, wird jedoch nicht jedes Mal aufgerufen, wenn der Benutzer vom zweiten Controller zurückkommt. Warum nicht, da es jedes Mal für den Benutzer erscheint?

Gibt es auch eine andere Möglichkeit zu unterscheiden, wann der übergeordnete Controller dem Benutzer angezeigt wurde? (möglicherweise eine andere Funktion ähnlich viewWillAppear, die funktionieren würde, während der zweite Controller entlassen wird)

Antwort

1

Sie müssen eine UnwindSegue verwenden. Ein UnwindSegue gibt Ihnen eine Möglichkeit, den Navigationsstapel "abzuwickeln" und ein Ziel anzugeben, zu dem Sie zurückkehren möchten. Ihre viewWillAppear nie wieder anrufen, weil bereits erschienen.

Wenn Sie wissen wollen, was ein UnwindSegue ist, diese Antwort überprüfen: stackoverflow anser

Wenn Sie wissen wollen, wie es zu tun, empfehle ich diese Links:

apple documentation about unwind segues

tutorial about unwind segues

+0

Links zu externen Ressourcen sind en mutig, aber bitte fügen Sie Kontext um den Link hinzu, damit Ihre Mitbenutzer eine Idee haben, was es ist und warum es da ist. Zitiere immer den relevantesten Teil eines wichtigen Links, falls die Zielseite nicht erreichbar ist oder permanent offline geschaltet wird. – Paulw11

Verwandte Themen