ios ios7 landscape viewcontroller

forzar el paisaje ios 7



ios7 landscape (3)

La respuesta aceptada no parece funcionar en iOS 7.1.2. (Funciona en el simulador pero no funciona mientras se ejecuta en un dispositivo).

Esto parece funcionar sin embargo:

[[UIDevice currentDevice] setValue:[NSNumber numberWithInteger:UIInterfaceOrientationPortrait] forKey:@"orientation"]; [[UIDevice currentDevice] setValue:[NSNumber numberWithInteger:UIInterfaceOrientationLandscapeLeft] forKey:@"orientation"];

Intenté seguir los métodos para forzar el paisaje en uno de mis puntos de vista:

- (NSUInteger)supportedInterfaceOrientations { return UIInterfaceOrientationMaskLandscape; } - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation { return UIInterfaceOrientationLandscapeLeft; } - (BOOL)shouldAutorotate{ return YES; }

Tampoco funcionó. Tenga en cuenta que estoy probando en el simulador y en un iPad.

Gracias


int shouldShowInLandscape = 0; -(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(forceToLandscape:) name:@"yourNameNotification" object:nil]; } -(NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window { if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { return UIInterfaceOrientationMaskLandscapeLeft; } else { if(shouldShowInLandscape) { return UIInterfaceOrientationMaskLandscape; } return UIInterfaceOrientationMaskPortrait; } } -(void) forceToLandscape:(NSNotification*) theNot { shouldShowInLandscape = [[theNot object] intValue]; }

// desde el UIViewController

- (void)viewDidLoad { [super viewDidLoad]; [[NSNotificationCenter defaultCenter] postNotificationName:@"yourNameNotification" object:[NSString stringWithFormat:@"1"]]; } -(void) viewDidDisappear:(BOOL)animated { [[NSNotificationCenter defaultCenter] postNotificationName:@"yourNameNotification" object:[NSString stringWithFormat:@"0"]]; }

// eliminar tu notificaciónCentro


Aquí es cómo obligué a uno de mis puntos de vista a ser Landscape usando NavigationViewController:

  1. Implementé esta respuesta: https://.com/a/12662433/2394787

  2. Mensaje importado en el controlador de vista: objc / message.h

  3. Se agregó esta línea de código en el método viewDidLoad:

objc_msgSend ([UIDevice currentDevice], @selector (setOrientation :), UIInterfaceOrientationLandscapeLeft);

Espero que ayude a alguien.