You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1.5 KiB
39 lines
1.5 KiB
// |
|
// UIViewController+StoryboardSegueIdentifierProtocol.swift |
|
// R.swift Library |
|
// |
|
// Created by Mathijs Kadijk on 06-12-15. |
|
// From: https://github.com/mac-cain13/R.swift.Library |
|
// License: MIT License |
|
// |
|
|
|
import Foundation |
|
import UIKit |
|
|
|
public protocol SeguePerformerType { |
|
func performSegue(withIdentifier identifier: String, sender: Any?) |
|
} |
|
|
|
extension UIViewController: SeguePerformerType {} |
|
|
|
public extension SeguePerformerType { |
|
/** |
|
Initiates the segue with the specified identifier (R.segue.*) from the current view controller's storyboard file. |
|
- parameter identifier: The R.segue.* that identifies the triggered segue. |
|
- parameter sender: The object that you want to use to initiate the segue. This object is made available for informational purposes during the actual segue. |
|
- SeeAlso: Library for typed block based segues: [tomlokhorst/SegueManager](https://github.com/tomlokhorst/SegueManager) |
|
*/ |
|
func performSegue<Segue, Destination>(withIdentifier identifier: StoryboardSegueIdentifier<Segue, Self, Destination>, sender: Any?) { |
|
performSegue(withIdentifier: identifier.identifier, sender: sender) |
|
} |
|
} |
|
|
|
public extension StoryboardSegue where Source : UIViewController { |
|
/** |
|
Performs this segue on the source view controller |
|
- parameter sender: The object that you want to use to initiate the segue. This object is made available for informational purposes during the actual segue. |
|
*/ |
|
func performSegue(sender: Any? = nil) { |
|
source.performSegue(withIdentifier: identifier.identifier, sender: sender) |
|
} |
|
}
|
|
|