Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import UIKit
- protocol StoryboardIdentifiable {
- static var storyboardIdentifier: String { get }
- }
- extension StoryboardIdentifiable where Self: UIViewController {
- static var storyboardIdentifier: String {
- return String(describing: self)
- }
- }
- extension UIViewController: StoryboardIdentifiable {
- private class func instantiateViewController<T: UIViewController>(from storyBoard: UIStoryboard) -> T {
- guard let viewController = storyBoard.instantiateViewController(withIdentifier: storyboardIdentifier) as? T else {
- fatalError("\(#function) Couldn't instantiate view controller with identifier \(storyboardIdentifier) ")
- }
- return viewController
- }
- class func initFromStoryboard() -> Self {
- let storyBoard = UIStoryboard(name: storyboardIdentifier, bundle: nil)
- return instantiateViewController(from: storyBoard)
- }
- }
Add Comment
Please, Sign In to add comment