para - ios 12 iphone 6
¿Cómo hacer que la aplicación funcione correctamente para la autorotación en iOS 6? (2)
Lo averigué.
1) UINavigationController subclasificado (el controlador de vista superior de la jerarquía tomará el control de la orientación) lo configuró como self.window.rootViewController.
- (BOOL)shouldAutorotate
{
return self.topViewController.shouldAutorotate;
}
- (NSUInteger)supportedInterfaceOrientations
{
return self.topViewController.supportedInterfaceOrientations;
}
2) Si no quieres que el controlador de vista gire
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
-(BOOL)shouldAutorotate
{
return NO;
}
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait;
}
3) Si quieres que pueda girar
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskAllButUpsideDown;
}
-(BOOL)shouldAutorotate
{
return YES;
}
Por cierto, según sus necesidades, otro método relacionado:
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
return UIInterfaceOrientationMaskPortrait;
}
En iOS6, shouldAutorotateToInterfaceOrientation
está en desuso. Intenté usar shouldAutorotate
y shouldAutorotate
para hacer que la aplicación funcionara correctamente para la autorotación pero falló.
este ViewController no quiero girar, pero no funciona.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
-(BOOL)shouldAutorotate
{
return NO;
}
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait;
}
¿Algunas ideas? Gracias por cualquier ayuda por adelantado!
Si está utilizando un controlador de barra de pestañas en lugar de un controlador de navegación como su controlador raíz, necesitará una subclase similar UITabBarController.
También la sintaxis será diferente. Utilicé lo siguiente con éxito. Luego utilicé los ejemplos anteriores con éxito en los controladores de vista que quería anular. En mi caso, quería que la pantalla principal no girara, pero tenía una pantalla de preguntas frecuentes con películas que, naturalmente, quería habilitar para la vista horizontal. Funcionó perfectamente! Solo tenga en cuenta el cambio de sintaxis a self.modalViewController (obtendrá una advertencia del compilador si intenta usar la sintaxis de un controlador de navegación). ¡Espero que esto le ayude!
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (BOOL)shouldAutorotate
{
return self.modalViewController.shouldAutorotate;
}
- (NSUInteger)supportedInterfaceOrientations
{
return self.modalViewController.supportedInterfaceOrientations;
}