CocoaPods trunk is moving to be read-only. Read more on the blog, there are 18 months to go.

SegueWithCompletion 0.1.6

SegueWithCompletion 0.1.6

TestsTested
LangLanguage SwiftSwift
License Custom
ReleasedLast Release Dec 2017
SwiftSwift Version 4.0
SPMSupports SPM

Maintained by SegueWithCompletion.



  • By
  • Dmytro Hrebeniuk

SegueWithCompletion

SegueWithCompletion is UIViewController extension that provides ability perform segue and clarify setup viewcontroller parameters without override prepareForSegue method.

Installation

Via CocoaPods:

pod 'SegueWithCompletion', :git => "https://github.com/dhrebeniuk/SegueWithCompletion.git"

Storyboard Usage

Present UIViewContreoller

Change perform your’s segues from this:

func openFooScreen() {
    self.performSegue(withIdentifier: "fooSegue", sender: nil);
}

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if let fooController = segue.destination as? FooViewController, segue.identifier == "fooSegue" {
        fooController.settings = Settings()
    }
}

To this:

func openFooScreen() {
    self.perform(segue: "fooSegue") { (fooController: FooViewController) in
        fooController.settings = Settings()
    }
}

Present UIViewContreoller with UINavigationController

Change perform your’s segues from this:

func openBarScreen() {
    self.performSegue(withIdentifier: "barSegue", sender: nil);
}

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if let barNavigationController = segue.destination as? UINavigationController, segue.identifier == "fooSegue" {
        if let barController = barNavigationController.topViewController as? BarViewController {
            barController.settings = Settings()
        }
    }
}

To this:

func openBarScreen() {
    self.performWithNavigationController(segue: "barSegue") { (barController: BarViewController) in
        barController.settings = Settings()
    })
}

Compatibility/Restrictions

  • iOS8+ only