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:
Implementé esta respuesta: https://.com/a/12662433/2394787
Mensaje importado en el controlador de vista: objc / message.h
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.