Skip to content

Instantly share code, notes, and snippets.

@rockbruno
Created September 13, 2018 18:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rockbruno/5fd92ddcc3a9c966782b9fd67dc525e1 to your computer and use it in GitHub Desktop.
Save rockbruno/5fd92ddcc3a9c966782b9fd67dc525e1 to your computer and use it in GitHub Desktop.
/// The HasCustomView protocol defines a customView property for UIViewControllers to be used in exchange of the regular view property.
/// In order for this to work, you have to provide a custom view to your UIViewController at the loadView() method.
public protocol HasCustomView {
associatedtype CustomView: UIView
}
extension HasCustomView where Self: UIViewController {
/// The UIViewController's custom view.
public var customView: CustomView {
guard let customView = view as? CustomView else {
fatalError("Expected view to be of type \(CustomView.self) but got \(type(of: view)) instead")
}
return customView
   }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment