2016-12-29 3 views
-1

Ich habe diesen Code:Entlassen Aktion, um benutzerdefinierte segue

@IBAction func cancelAction(_ sender: Any) { 
    self.dismiss(animated: true) { } 
} 

Kann es anders vielleicht mit benutzerdefinierten segue getan werden?

Dank

+1

Was ist mit diesem Code falsch? Scheint mir vernünftig. Möglicherweise können Sie stattdessen ein Abwicklungssegment verwenden, aber ich sehe kein Problem mit dem von Ihnen geposteten Code. –

+0

Ich brauche es an mehreren Orten. Es scheint mühsam. Ich suche nach wiederverwendbaren Lösungen. – user7355869

+0

Sie könnten dann eine Erweiterung für UIViewController definieren, die diese Funktion implementiert hat und für alle View-Controller verfügbar wäre. –

Antwort

2

Definieren Sie Ihre individuelle segue wie folgt aus:

class DismissSegue: UIStoryboardSegue { 

    override func perform() { 
     if let p = source.presentingViewController { 
      p.dismiss(animated: true, completion: nil) 
     } 
    } 

} 

Auf dem Storyboard, um die Aktion segue der Schaltfläche View-Controller selbst ziehen und wählen Sie Benutzerdefiniert> Entlassen, stellen Sie sicher, dass die Module von die segue ist Ihr aktuelles Projekt-Modul gesetzt (wenn es leer):

enter image description here

+0

Vielen Dank :) – user7355869