Приложение iOS только для портретов возвращается из UIWebview youtube в альбомной ориентации - PullRequest
5 голосов
/ 12 марта 2012

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

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

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

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

РЕДАКТИРОВАТЬ:

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

Ответы [ 2 ]

2 голосов
/ 07 июня 2012
[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationPortrait];

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

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

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

0 голосов
/ 02 мая 2012

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

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

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

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

...