Как и многие люди, у меня есть заставка, которая активируется, чтобы открыть первый вид моего приложения. Я переработал это для iPad, и если вы держите устройство в портретном или ландшафтном режимах, все работает по назначению, используется правильное изображение по умолчанию, используется правильное изображение, которое используется для анимирования этого, все ориентации работают хорошо.Ориентация запуска iPad при плоских проблемах в делегате приложения
НО
Если я получаю устройство в ландшафтном режиме, а затем положить его на стол, все идет не так. Правильный экран заставки используется, но изображение, используемое для его анимации, неверно, и я проследил его до следующего кода, который возвращает 5 - то есть ни один из режимов portraitupsidedown/Portrait/Landscapeleft/landscaperight, которые он должен вернуть.
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
UIInterfaceOrientation orientation = [UIDevice currentDevice].orientation;
Само устройство четко знает правильную ориентацию, чтобы использовать как строка состояния является правильной, и на самом деле первым контроллер вида вращается в правильную ориентацию, - но ясно то, что [UIDevice CurrentDevice] .orientation не так же, как устройство действительно знает, и поэтому код, который я использую для развертывания соответствующей графики внутри делегата приложения, неверен.
Я думаю, мой вопрос: как я могу это исправить? Есть ли способ получить правильную ориентацию устройства в делегате приложения?
А, я не знал об IsValidInterfaceOrientation, это полезно. Интересно, если я использую statusBarOrientation в делегате приложения, это дает мне действительное направление, но НЕПРАВИЛЬНОЕ - как вы говорите, кажется, что при запуске ориентация еще не сообщается делегату приложения. Самое недоумение ... похоже, мне нужно будет перестроить вещи :-( – Roger