Subclassing a subclassed UIViewController that has a xib
If you only have an xib for the parent class (but none of the subclasses), you can just do this in your subclass init:
- (instancetype) init {
if (self = [super initWithNibName:@"ParentViewController" bundle:nil]) {
// init stuff for subclass
}
return self;
}
Here's an example project:
https://github.com/annabd351/SubClassFromParentNib
If someone is looking for a Swift solution, you can use Convenience initializers on the subclass and initialise it using the super class xib.
In your subclass use the convenience initializer as:
class ChildController: BaseViewController {
convenience init() {
self.init(nibName: "BaseViewControllerXib", bundle: nil)
}
override func viewDidLoad() {
super.viewDidLoad()
}
}
And then when creating the child class object just use.
let childViewController = ChildController()
navigationController.pushViewController(childViewController, animated: true)
This way you can use the xib from the parent viewController.