2012-03-12 26 views
5

Estoy creando un iOS application y he encontrado el siguiente problema:iOS retrato de aplicaciones rendimientos de UIWebView youtube en el paisaje

El proyecto está llamada a ser una aplicación portrait modo. Tengo un UIWebview, que carga una página web con un video youtube. Cuando se hace clic en el video, comienza en el youtube player. Cuando el video cambia al modo landscape y se hace clic en 'hecho' vuelve al UIWebview mostrándolo en landscape.

Recibo un NSNotification cuando el video está terminado pero no puedo forzar el modo portrait.

Esto no debería ser posible, ¿cómo puedo permitir que youtube esté en landscape pero obligue a la aplicación a permanecer en el modo portrait? ¿O hay otra solución?

EDIT:

caso de contacto con Apple que resultó ser un error y se informa.

+1

¿Cómo conseguiste que el reproductor de youtube de un UIWebView apareciera en el paisaje? –

Respuesta

0

Creo que se puede utilizar NSNotification como usted ha dicho, y en llamado método de utilizar esta línea de código por ahora para forzar el fin de retrato

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

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

Esperamos que ayuda

2
[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationPortrait]; 

es API privada. No recomendaría usarlo.

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

es una forma mucho mejor, creo. Obliga a la aplicación a ajustar su orientación.

Cuestiones relacionadas