The system intersects the view controller's supported orientations with the app's supported orientations (as determined by the Info.plist file or the app delegate'sapplication:supportedInterfaceOrientationsForWindow: method) to determine whether to rotate.
For compatibility, view controllers that still implement the shouldAutorotateToInterfaceOrientation: method do not get the new autorotation behaviors. (In other words, they do not fall back to using the app, app delegate, or Info.plist file to determine the supported orientations.) Instead, the shouldAutorotateToInterfaceOrientation: method is used to synthesize the information that would be returned by thesupportedInterfaceOrientations method.