Video auf Querformat mit der Only-Portrait-App zulassen

Ich habe eine UIWebView in einem UIViewController, der von UINavigationController abstammt. Es sieht aus wie das

Die App ist nur im Hochformat. Wenn ich das Video abspiele, soll der Benutzer das Gerät drehen und das Video im Querformat anzeigen können. Ich benutze diesen Code, um es zu erlauben:

- (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;
}

Und dann in meinem UINavigationController (wenn das Video fertig ist, wird die Ansicht nicht im Querformat, sondern nur im Hochformat angezeigt):

- (BOOL)shouldAutorotate
{
    return NO;
}

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait;
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
    return UIInterfaceOrientationPortrait;
}

Alles funktioniert perfekt:

Aber wenn das Video abgespielt ist (oder der Benutzer auf "Fertig" tippt) und die Bildschirme zur zugrunde liegenden Ansicht zurückkehren, geschieht Folgendes:

Wie Sie sehen, wird die Navigationsleiste unter der Statusleiste angezeigt. Außerdem werden in den Protokollen viele Fehler beim automatischen Layout angezeigt:http: //pastebin.com/09xHzmg

Ich habe eine Idee, wie ich das lösen kann?

Antworten auf die Frage(8)

Ihre Antwort auf die Frage