IOS 8 - приложение не вращается соответственно

У меня есть приложение, первоначально разработанное для iOS 7.1, которое я сейчас тестирую на iPad через Xcode 6.1. При работе на iPad под управлением 7.1 или в 7.1-симуляторе приложение функционирует так, как ожидалось. На 8.1 iPad или 8.1 симуляторе кажется, что вращение не обрабатывается надлежащим образом. Я вижу, что строка состояния находится сверху, но само приложение не изменяется. Я понимаю, что это связано с тем, что методы ротации устарели в iOS 8. Мой вопрос... теперь что???

Я не нашел никакой документации, которая дает краткий ответ о том, как обрабатывать ротацию с использованием новых механизмов iOS 8. Есть ли способ изящно обрабатывать вращения в iOS 8 так же, как я обрабатывал их в iOS 7? Я даже не вижу, как называются старые методы вращения, поэтому кажется, что это больше, чем типичная "усталость". Кажется, что они вообще устранили вызовы этих методов.

Любая помощь или совет?

Ответ 1

У меня была аналогичная проблема, и я исправил ее, удалив ключи UIMainStoryboardFile и UIMainStoryboardFile ~ ipad из списка свойств информации о приложении

Посмотрите на это обсуждение https://devforums.apple.com/message/1064397#1064397

Ответ 2

Используете ли вы раскадровки? Если это так, у вас может быть старый код в вашем методе application didFinishLaunchingWithOptions.

Попробуйте удалить следующую строку кода и любые другие, связанные с UIWindow:

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

Другие сказали удалить строки из вашего файла plist, но это не обязательно.

Ответ 3

Используйте viewWillTransitionToSize:withTransitionCoordinator: следующим образом:

- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
{
    [super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];

    // Will rotate

    [coordinator animateAlongsideTransition:^(id<UIViewControllerTransitionCoordinatorContext> context) {
        // Will animate rotation
    } completion:^(id<UIViewControllerTransitionCoordinatorContext> context) {
        // Did rotate
    }];
}

Вы должны посмотреть видео WWDC 2014 "Просмотр контроллеров в iOS 8", где это обсуждается.