Приложение iOS только для портрета возвращается из UIWebview youtube в альбомной ориентации

Я создаю iOS application и столкнулся со следующей проблемой:

Проект настроен как приложение режима portrait. У меня есть UIWebview, который загружает веб-страницу с youtube видео. Когда видео нажимается, оно начинается в youtube player. Когда видео переходит в режим landscape и нажимается «Готово», оно возвращается к UIWebview, показывающему его в landscape.

Я получаю NSNotification, когда видео заканчивается, но я не могу принудительно включить режим portrait.

Это не должно быть возможно, как я могу разрешить YouTube быть в режиме landscape, но заставить приложение оставаться в режиме portrait? Или есть другой обходной путь?

ИЗМЕНИТЬ:

После контакта с Apple выяснилось, что это ошибка, о которой сообщается.


person Johan_    schedule 12.03.2012    source источник
comment
Как вы заставили проигрыватель YouTube из UIWebView отображаться в альбомной ориентации?   -  person Andrew Theis    schedule 26.04.2012


Ответы (2)


[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationPortrait];

это частный API. Я бы не рекомендовал его использовать.

    UIWindow *window = [[UIApplication sharedApplication] keyWindow];
    UIView *view = [window.subviews objectAtIndex:0];
    [view removeFromSuperview];
    [window insertSubview:view atIndex:0];

намного лучше, я думаю. Это заставляет приложение корректировать свою ориентацию.

person Prajwal Runiyar    schedule 07.06.2012

Я думаю, вы можете использовать NSNotification, как вы сказали, и в вызываемом методе используйте эту строку кода на данный момент, чтобы принудительно просмотреть портрет

- (void)YourMethodCalledByNSNotification
{
    UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation;

    if (orientation == UIInterfaceOrientationLandscapeLeft || orientation == UIInterfaceOrientationLandscapeRight || orientation == UIInterfaceOrientationPortraitUpsideDown) 
    {
        [[UIDevice currentDevice] setOrientation:UIInterfaceOrientationPortrait];
    }
}

Надеюсь, это поможет

person Shahid Aslam    schedule 02.05.2012