UI autorotation работает только на некоторых устройствах? - PullRequest
1 голос
/ 12 февраля 2010

У меня довольно интересная (но очень раздражающая) проблема с (не только) авторотацией пользовательского интерфейса. Я работаю над приложением, которое содержит контроллер вкладок с парой контроллеров навигации в качестве элементов вкладок. Один из этих контроллеров позволяет осуществлять автоматический переход в ландшафтный режим.

Интересно, что он отлично работает в симуляторе и на моем собственном устройстве, но не работает на других тестовых устройствах. Все устройства одинаковы - iPhone 3G 16 ГБ, версия ОС 3.1.3.

Когда я ищу сообщения журнала, которые сообщают о событиях изменения ориентации в консоли, я могу найти его снова только на моем устройстве, но не на других устройствах, поэтому кажется, что другие устройства вообще не сообщают об изменении ориентации. С другой стороны, это маловероятно, потому что другие приложения работают нормально ... Также некоторые другие функции, которые работают на моем телефоне, не работают и на других устройствах (например, обработка событий касания в табличном представлении).

Я никогда не видел ничего подобного и не могу найти причину, почему, черт возьми, это не должно работать на всех устройствах одинаково! Так что вопрос - я сумасшедший или как?

Я использую подкласс UITabBarViewController с переопределенным методом

- (BOOL) shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation) toInterfaceOrientation {
    BOOL shouldRotate = (toInterfaceOrientation == UIInterfaceOrientationPortrait || toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft);

    NSLog(@"Should rotate: %d", shouldRotate);
    return shouldRotate;
}

Затем я обрабатываю анимацию изменения ориентации в соответствующих методах (willRotate ..., willAnimateRotation ...). Но, как я уже сказал, он отлично работает на моем устройстве, но на других устройствах метод shouldAutorotateToInterfaceOrientation: никогда не вызывается. Weird!

Пожалуйста, дайте мне подсказку, прежде чем я закончу в сумасшедшем доме. Спасибо за любой совет.

...