Pregunta

Estoy trabajando en la aplicación. La orientación de la APP es un paisaje, pero después de la interfaz de ejecución de la aplicación, la orientación de la interfaz de APP cambia la interfaz y gira. Pantalla de pantalla de salpicaduras de manera correcta (paisaje). Estoy usando iOS7, la aplicación fue código para iOS5, creo que hay un problema de API desactivado, por ejemplo, debería sereutorotateTointerFeAnientation Bot llamado porque esto ya no está disponible en los últimos iOS

enter image description here

¿Fue útil?

Solución

Si desea que todos nuestros controladores de navegación respeten el controlador de vista superior, puede usar una categoría para que no tenga que pasar y cambiar un montón de nombres de clases.

 @implementation UINavigationController (Rotation_IOS6)

-(BOOL)shouldAutorotate
{
   return [[self.viewControllers lastObject] shouldAutorotate];
 } 

-(NSUInteger)supportedInterfaceOrientations
{
    return [[self.viewControllers lastObject] supportedInterfaceOrientations];
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
    return [[self.viewControllers lastObject]     preferredInterfaceOrientationForPresentation];
}

@end

Como apuntan algunos de los comentarios, esta es una solución rápida al problema. Una mejor solución es la subclase Uinavigation Controller y poner estos métodos allí. Una subclase también ayuda a apoyar 6 y 7.

Otros consejos

enter image description here

Tienes que configurar ointatoin en la compilación de la imagen.

resolverá tu problema.

Prueba esto:

- (BOOL)shouldAutorotate
{
    return YES;
}

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight;
}

EDITAR :

Ver el adjunto Enlace, podría ser útil para usted.

Encuentro la solución que pensar que hago es. Paso uno anula mi Uinavigation Controller creando una categoría

Paso dos reemplazar [self.window addSubView: [NavigationController View]]; //ANTIGUO

Con [self.window setrootViewController: navigationController]; //NUEVO

Use esto en su AppDelegate.m

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
    NSLog(@"Interface orientations");
    if([[UIDevice currentDevice]userInterfaceIdiom]==UIUserInterfaceIdiomPad ){

        return UIInterfaceOrientationMaskLandScape;
    }
    else{
        return UIInterfaceOrientationMaskPortrait;
    }
}

Me ayudó..

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top