Initiating Child ViewController from UIStoryBoard in iOS
There isn't another way to handle this scenario. Storyboard VC's can't be subclassed without replicating the UI also.
I'm surprised this works at all. object_setClass just changes the isa pointer, so the memory is still set up for the parent class, not the child. It will probably crash if you try to set an instance variable that doesn't exist in the parent.
Refactor the two VC's into one (since the UI is the same after all), and use composition for the differences instead.