Неправильное поведение ориентации iPad - изменения при каждом запуске? - PullRequest
1 голос
/ 03 августа 2011

У меня очень странная проблема, которую я пока не могу диагностировать.

В моем приложении для iOS (это универсальный бинарный файл), когда я запускаю на iPad 4.3, ориентация при запуске несовместима.

Делегат приложения добавляет заставку (UIViewController) к главному окну, затем удаляет его и добавляет основной вид приложения. Именно этот основной вид является проблемой - примерно в половине случаев он корректно загружается в альбомной ориентации, а в другой половине - в портретном (хотя строка состояния и клавиатура находятся в горизонтальном положении).

Я немного растерялся относительно того, почему меняется ориентация при запуске, когда я не изменяю код или ориентацию симулятора / устройства.

У меня UIInterfaceOrientationLandscapeLeft и UIInterfaceOrientationLandscapeRight установлены как единственные поддерживаемые ориентации для iPad в Info.plist, и каждый контроллер представления использует следующее:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations

    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
        // The device is an iPad running iPhone 3.2 or later.
        if (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight) {
            return YES;
        }

    } else {
        // The device is an iPhone or iPod touch.
        if (interfaceOrientation == UIInterfaceOrientationPortrait) {
            return YES;
        }

    }

    return NO;
}

Может кто-нибудь помочь мне с этим ??

Приветствия

Олли

1 Ответ

0 голосов
/ 03 августа 2011

Если строка состояния и клавиатура всегда в горизонтальной ориентации, то проблема не в методе shouldAuto ....Это может быть в viewDidLoad.Также попробуйте следующее: в project-info.plist установите «Начальная ориентация интерфейса» как ландшафт влево / вправо, «очистите» проект и запустите.

...