Я настроил свое приложение так, чтобы оно работало в UIInterfaceOrientationLandscapeRight и UIInterfaceOrientationLandscapeLeft. Я установил эти значения в моем файле plist, и в моем случае shouldAutorotateToInterfaceOrientation он будет возвращать только YES для этих ориентаций.
По большей части это работает отлично, за исключением iPad, где, если бы я держал его в LandscapeLeft во время запуска, мое приложение оказалось бы в портретном режиме, если я не переключу iPad в LandscapeRight для вызова изменения ориентации.
Просматривая журнал, стало очевидно, что "willAnimateRotationToInterfaceOrientation" происходит до вызова applicationDidBecomeActive. Я изменил свой код, так что shouldAutorotateToInterfaceOrientation возвращает YES для любой ориентации перед вызовом applicationDidBecomeActive и возвращает YES для моих альбомных ориентаций только после вызова applicationDidBecomeActive. Теперь мое приложение будет правильно запускаться и в LandscapeLeft. Однако я не чувствую, что мне следует это исправить, и я понятия не имею, почему iPad ведет себя так, как он. Буду признателен, если кто-нибудь сможет объяснить мне эту странность.