From UIViewController Class Reference:
didRotateFromInterfaceOrientation:
Sent to the view controller after the user interface rotates.
didRotateFromInterfaceOrientation
is not being called during load because there was no user interface rotation.
shouldAutorotateToInterfaceOrientation
is called before every rotation. I am not sure why it's called during load. I think it could be a matter of some performance optimalization hint used by UINavigationViewController
.