Video de YouTube en modo horizontal dentro de UIWebView

Mi request no fue hecha para el paisaje. Pero cuando abro mi canal de YouTube en un UIWebView y un usuario inicia un video , aparece en Portrait. Me gustaría que aparezca en modo horizontal si el usuario gira su iPhone.

¿Cómo habilitar el modo horizontal como en este caso?

Sé que hay "hacks sucios" para hacer esto, pero prefiero algo más limpio. Además, no quiero que el UIWebView cambie al paisaje, sino que los videos pueden hacerlo.

Finalmente ajusté mi vista para que sea compatible con el modo horizontal con el siguiente código:

- (void)viewDidLoad { [super viewDidLoad]; [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged:) name:UIDeviceOrientationDidChangeNotification object:nil]; } - (void)viewWillAppear:(BOOL)animated { UIDeviceOrientation deviceOrientation = [UIDevice currentDevice].orientation; if (UIDeviceOrientationIsLandscape(deviceOrientation)) { //I set my new frame origin and size here for this orientation isShowingLandscapeView = YES; } else if (deviceOrientation == UIDeviceOrientationPortrait) { //I set my new frame origin and size here for this orientation isShowingLandscapeView = NO; } } - (void)orientationChanged:(NSNotification *)notification { // We must add a delay here, otherwise we'll swap in the new view // too quickly and we'll get an animation glitch [self performSelector:@selector(updateLandscapeView) withObject:nil afterDelay:0]; } - (void)updateLandscapeView { UIDeviceOrientation deviceOrientation = [UIDevice currentDevice].orientation; if (UIDeviceOrientationIsLandscape(deviceOrientation) && !isShowingLandscapeView) { //I set my new frame origin and size here for this orientation isShowingLandscapeView = YES; } else if (deviceOrientation == UIDeviceOrientationPortrait && isShowingLandscapeView) { //I set my new frame origin and size here for this orientation isShowingLandscapeView = NO; } } - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { return (interfaceOrientation == UIInterfaceOrientationPortrait || UIInterfaceOrientationIsLandscape(interfaceOrientation)); } 

Para mostrar su video en la vista horizontal, solo vaya al inspector de attributes de esa vista donde haya implementado su webView en Xcode y cambie la orientación de vertical a horizontal. tan simple como eso … disfruta

y no te olvides de agregar este código

 -(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { if (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight) { return YES; } } 
 -(NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window { id presentedViewController = [window.rootViewController presentedViewController]; NSString *className = presentedViewController ? NSStringFromClass([presentedViewController class]) : nil; if (window && [className isEqualToString:@"AVFullScreenViewController"] && [presentedViewController isBeingDismissed] == NO) { return UIInterfaceOrientationMaskAll; } else { return UIInterfaceOrientationMaskPortrait; }} 

// esto funciona para ios8