Organizational Research By

Surprising Reserch Topic

Experts Most Trusted Topic


allow video on landscape with only portrait app using -'ios,objective-c,uiwebview,uinavigationcontroller,screen-rotation'


allow video on landscape with only portrait app  using -'ios,objective-c,uiwebview,uinavigationcontroller,screen-rotation'

I have a UIWebView included in a UIViewController which is a descendant of UINavigationController. It looks like this:



The app is portrait only. When I play the video I want the user to be able to rotate the device and see the video in landscape mode. I use this code to allow it:

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


And then in my UINavigationController (so when the video finishes the view is not presented in landscape but only in portrait):

- (BOOL)shouldAutorotate
{
    return NO;
}

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait;
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
    return UIInterfaceOrientationPortrait;
}


Everything works perfectly:

 

But then the video is done playing (or the user taps ‚ÄėDone‚Äô) and the screens return to the underlying view, this is what happens:



As you can see, the navigation bar slips under the status bar.
Additionally, I get a lot of auto-layout errors in the logs: http://pastebin.com/09xHzmgJ

Any idea about how to solve this?
    

asked Sep 7, 2015 by rajesh
0 votes
29 views



Related Hot Questions



Walkin Jobs Opening



Government Jobs Opening


...