Разрешить видео в пейзаже с помощью приложения только для портрета

У меня есть UIWebView, включенный в UIViewController, который является потомком UINavigationController. Это выглядит так:

Приложение только портретное. При воспроизведении видео я хочу, чтобы пользователь мог поворачивать устройство и просматривать видео в альбомном режиме. Я использую этот код, чтобы позволить это:

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
    id presentedViewController = [self topMostController];
    NSString *className = presentedViewController ? NSStringFromClass([presentedViewController class]) : nil;

    if ([className isEqualToString:@"MPInlineVideoFullscreenViewController"] ||
        [className isEqualToString:@"MPMoviePlayerViewController"] ||
        [className isEqualToString:@"AVFullScreenViewController"]) {
        return UIInterfaceOrientationMaskAllButUpsideDown;
    }

    return UIInterfaceOrientationMaskPortrait;
}

- (UIViewController *)topMostController {
    UIViewController *topController = [UIApplication sharedApplication].keyWindow.rootViewController;

    while (topController.presentedViewController) {
        topController = topController.presentedViewController;
    }

    return topController;
}

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

- (BOOL)shouldAutorotate
{
    return NO;
}

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait;
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
    return UIInterfaceOrientationPortrait;
}

Все отлично работает

Но затем видео закончено воспроизводится (или пользователь нажимает «Готово»), и экраны возвращаются к базовому виду, вот что происходит:

Как видите, панель навигации скользит под строкой состояния. Кроме того, я получаю много ошибок автоматической разметки в журналах:http://pastebin.com/09xHzmgJ

Есть идеи о том, как это решить?

Ответы на вопрос(8)

Ваш ответ на вопрос