¿Cómo forzar la orientación vertical?

¿Cómo forzar la orientación vertical en iOS 7 si mi aplicación es inicialmente compatible con ambas orientaciones?

 UIViewController *c = [[UIViewController alloc]init]; [self presentViewController:c animated:NO completion:nil]; [self dismissViewControllerAnimated:NO completion:nil]; 

Para toda la aplicación, abre el file del proyecto, ve a la pestaña General, cambia la configuration:

introduzca la descripción de la imagen aquí

O directamente en el file Info.plist:

introduzca la descripción de la imagen aquí

Si solo lo desea en un controller de vista específico, reemplace supportedInterfaceOrientations :

 - (NSUInteger)supportedInterfaceOrientations { return UIInterfaceOrientationMaskPortrait; } 

Puede leer más sobre el segundo método en la documentation oficial de UIViewController . Tal vez, encontrará una manera más adecuada para su problema específico.

Utiliza el siguiente enfoque: en el delegado de la aplicación .h

 @interface PlayWithWSWithLibAppDelegate : NSObject <UIApplicationDelegate, UITabBarControllerDelegate> { BOOL flagOrientationAll; } @property (assign) BOOL flagOrientationAll; 

Agregue el siguiente método en su file delegado de la aplicación .m

 - (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window{ //NSLog(@"PlayWithWSWithLibAppDelegate -- supportedInterfaceOrientationsForWindow"); if(flagOrientationAll == YES){ return UIInterfaceOrientationMaskPortrait; } else { return UIInterfaceOrientationMaskAll; } } 

Implementa la siguiente manera en su vista que desea rotar tanto en retrato como en paisaje tanto para el dispositivo iPhone

 -(void)viewWillAppear:(BOOL)animated { self.tabBarController.delegate = self; PlayWithWSWithLibAppDelegate *delegate = (PlayWithWSWithLibAppDelegate *) [[UIApplication shanetworkingApplication] delegate]; delegate.flagOrientationAll = YES; } } -(void)viewWillDisappear:(BOOL)animated { //NSLog(@"viewWillDisappear -- Start"); PlayWithWSWithLibAppDelegate *delegate = (PlayWithWSWithLibAppDelegate *)[[UIApplication shanetworkingApplication] delegate]; delegate.flagOrientationAll = NO; } 

Aquí está mi hilo, algo similar a tu problema: Orientación de la interfaz de iOS 7

 #import <objc/message.h> objc_msgSend([UIDevice currentDevice], @selector(setOrientation:), UIInterfaceOrientationLandscapeRight);//here you may change your desinetworking Orientation