Skip to content

Instantly share code, notes, and snippets.

@elefantel
Last active March 17, 2017 22:02
Show Gist options
  • Save elefantel/89ebd4e050e62f167cdb733a8270c4b8 to your computer and use it in GitHub Desktop.
Save elefantel/89ebd4e050e62f167cdb733a8270c4b8 to your computer and use it in GitHub Desktop.
public enum Storyboard: String {
case Analytics, Dashboard, Reporting, Transactions
var instance: UIStoryboard {
return UIStoryboard(name: self.name, bundle: nil)
}
var name: String {
return self.rawValue
}
public func viewController<T: UIViewController>(viewControllerClass: T.Type) -> T {
let storyboardID = (viewControllerClass as UIViewController.Type).storyboardID
return self.instance.instantiateViewController(withIdentifier: storyboardID) as! T
}
public func navigationController<T: UIViewController>(viewControllerClass: T.Type) -> UINavigationController {
let storyboardID = (viewControllerClass as UIViewController.Type).storyboardID
return self.instance.instantiateViewController(withIdentifier: storyboardID) as! UINavigationController
}
public func tabBarController<T: UIViewController>(viewControllerClass: T.Type) -> UITabBarController {
let storyboardID = (viewControllerClass as UIViewController.Type).storyboardID
return self.instance.instantiateViewController(withIdentifier: storyboardID) as! UITabBarController
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment