forked from asuc-octo/berkeley-mobile-ios
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathUIStoryboard+Extension.swift
35 lines (28 loc) · 1.05 KB
/
UIStoryboard+Extension.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
import UIKit
// Store keeps a mapping from storyboard name to instance.
// Function instance() is for lazily initializing the instance.
// Assumes that search performance is negligible for the number of storyboards.
fileprivate var store = [String : UIStoryboard]()
fileprivate func instance(_ name: String, _ bundle: Bundle? = nil) -> UIStoryboard
{
var sb = store[name]
if sb == nil
{
sb = UIStoryboard(name: name, bundle: bundle)
store[name] = sb
}
return sb!
}
/**
* Extension for `UIStorboard` with project storyboards as proparties.
* The instances are lazily initialized.
*/
extension UIStoryboard
{
static var main : UIStoryboard { return instance("Main") }
static var resource : UIStoryboard { return instance("Resource") }
static var academics: UIStoryboard { return instance("Academics") }
static var gym : UIStoryboard { return instance("Gym") }
static var dining : UIStoryboard { return instance("Dining") }
static var transit : UIStoryboard { return instance("Transit") }
}