You will have to use object c runtime. Override init method of your subclass. Create a BaseViewController object using 'instantiateViewControllerWithIdentifier'. Then set the class for created object using objc_setClass method.
Following code will go into SubclassViewController.m.
- (instancetype)init {
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"main" bundle:[NSBundle mainBundle]];
UIViewController *baseClassViewController = [storyboard instantiateViewControllerWithIdentifier:@"baseClassIdentifier"];
object_setClass(baseClassViewController, [SubclassViewController class]);
return (SubclassViewController *)baseClassViewController;
}
After this, you can simply create SubclassViewController object using simple [[SubclassViewController alloc] init].