Load UIViewController from the separate nib file in swift?
var viewController = OfferDetailViewController(nibName: "OfferDetailViewController", bundle: nil)
Here is a nice generic approach...
extension UIViewController { class func loadFromNib<T: UIViewController>() -> T { return T(nibName: String(describing: self), bundle: nil) }}let vc : OfferDetailViewController = OfferDetailViewController.loadFromNib()
solution with type casting:
extension UIViewController { static func initFromNib() -> Self { func instanceFromNib<T: UIViewController>() -> T { return T(nibName: String(describing: self), bundle: nil) } return instanceFromNib() }}
enjoyment:
let testVC = TestVC.initFromNib()testVC.someCustomParam = "someValue"