2010-08-09 5 views
0

Premier - je lis tous les sujets similaires et non d'entre eux travaillent pour moi. J'ai peu de contrôleurs de vue. Et je les changer par ce code:iPhone force orientation

- (void)flipToAzbukaMenu { 
    AzbukaMenuController *aAzbukaMenu = [[AzbukaMenuController alloc] initWithNibName:@"AzbukaMenu" bundle:nil]; 
    [self setAzbukaMenuController:aAzbukaMenu]; 
    [aAzbukaMenu release]; 

    [UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:2.0]; 
    [UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:window cache:NO]; 
    [viewController.view removeFromSuperview]; 
    [azbukaArcadeController.view removeFromSuperview]; 
    [self.window addSubview:[azbukaMenuController view]]; 

    [UIView commitAnimations]; 
} 

J'ai aussi bonne clé dans plist qui me permet de lancer l'application en mode paysage. Lorsque l'application démarre, elle a une orientation correcte (paysage), mais quand je change de vue, elle devient portrait et redevient paysage après avoir tourné l'appareil de 270 degrés (pas 90 lol). Comment puis-je forcer l'application à afficher toutes les vues en mode paysage?

UPD:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    if ((interfaceOrientation==UIInterfaceOrientationPortrait)||(interfaceOrientation==UIInterfaceOrientationPortraitUpsideDown)) 
    { 
     return NO; 
    } 
    if ((interfaceOrientation==UIInterfaceOrientationLandscapeLeft)||(interfaceOrientation==UIInterfaceOrientationLandscapeRight)) 
    { 
     return YES; 
    } else { 
     return YES; 
    } 
} 

Répondre

0

Il existe deux modes paysage et deux modes portrait. L'un est paysage à gauche, l'autre est paysage juste. Par exemple, si vous basculez vers l'un des modes portrait (disons, avec le bouton d'accueil en bas) du paysage à gauche, vous obtiendrez une rotation de 270 degrés.

Quant à la façon de forcer votre point de vue de rester dans le paysage (choisir l'un des deux modes), il suffit de faire quelque chose comme:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft); 
} 

Ce sera toujours faire ce point de vue à afficher dans l'orientation à gauche du paysage.

+0

correction - fonctionne uniquement avec le code de l'UPD. – Andoriyu