Why are my overridden methods arbitrarily called?

Originally I asked why my overridden methods in some derived view controllers were NOT being called. Then I noticed that I'm loading them from a storyboard but using "as MyBaseVC" and not the derived class that they belong to (and are specified as in the storyboard).

tabBoard.instantiateViewController(withIdentifier: tabName) as? MyBaseVC

What is the expected behavior? The real class (the child of MyBaseVC) is specified for the controller on the storyboard. So will method calls behave polymorphically or not?