/
ViewControllers.swift
59 lines (46 loc) · 1.86 KB
/
ViewControllers.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
//
// ViewControllers.swift
// SegueManager
//
// Created by Tom Lokhorst on 2016-01-23.
// Copyright © 2016 nonstrict. All rights reserved.
//
import UIKit
public protocol SeguePerformer {
var segueManager: SegueManager { get }
}
extension SeguePerformer {
public func performSegue(_ identifier: String, handler: (UIStoryboardSegue) -> Void) {
segueManager.performSegue(identifier, handler: handler)
}
public func performSegue<T>(_ identifier: String, handler: (T) -> Void) {
segueManager.performSegue(identifier, handler: handler)
}
public func performSegue(_ identifier: String) {
segueManager.performSegue(identifier)
}
}
public class SegueManagerViewController : UIViewController, SeguePerformer {
public lazy var segueManager: SegueManager = { return SegueManager(viewController: self) }()
override public func prepare(for segue: UIStoryboardSegue, sender: AnyObject?) {
segueManager.prepare(for: segue)
}
}
public class SegueManagerCollectionViewController : UICollectionViewController, SeguePerformer {
public lazy var segueManager: SegueManager = { return SegueManager(viewController: self) }()
override public func prepare(for segue: UIStoryboardSegue, sender: AnyObject?) {
segueManager.prepare(for: segue)
}
}
public class SegueManagerNavigationController : UINavigationController, SeguePerformer {
public lazy var segueManager: SegueManager = { return SegueManager(viewController: self) }()
override public func prepare(for segue: UIStoryboardSegue, sender: AnyObject?) {
segueManager.prepare(for: segue)
}
}
public class SegueManagerTableViewController : UITableViewController, SeguePerformer {
public lazy var segueManager: SegueManager = { return SegueManager(viewController: self) }()
override public func prepare(for segue: UIStoryboardSegue, sender: AnyObject?) {
segueManager.prepare(for: segue)
}
}