Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import UIKit
- protocol GiverType {
- var message: String { get }
- }
- protocol ReceiverType: class {
- var message: String? { get set }
- }
- protocol TransitionMediator {
- var giver: GiverType { get }
- var receiver: ReceiverType { get }
- func mediate()
- }
- extension TransitionMediator {
- func mediate() {
- receiver.message = giver.message
- }
- }
- extension TransitionMediator where Self: UIStoryboardSegue {
- var giver: GiverType {
- return sourceViewController as! GiverType
- }
- var receiver: ReceiverType {
- return destinationViewController as! ReceiverType
- }
- }
- class MediateSegue: UIStoryboardSegue, TransitionMediator {
- override func perform() {
- mediate()
- super.perform()
- }
- }
- class ViewController: UIViewController, GiverType {
- var message: String {
- return "test"
- }
- override func viewDidLoad() {
- super.viewDidLoad()
- // Do any additional setup after loading the view, typically from a nib.
- }
- override func didReceiveMemoryWarning() {
- super.didReceiveMemoryWarning()
- // Dispose of any resources that can be recreated.
- }
- }
- class SecondViewController: UIViewController, ReceiverType {
- @IBOutlet weak var label: UILabel!
- var message: String?
- override func viewDidLoad() {
- super.viewDidLoad()
- label.text = message
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement