2010-08-21 5 views
2

Je veux faire ce qui suit:Comment forcer l'orientation horizontale?

ViewControllerA ne doit pas aller dans l'orientation horizontale ViewControllerA pousse ViewControllerB ViewControllerB devrait aller en orientation horizontale.

Vous ne savez pas quoi définir pour que cela se produise.

Répondre

2

Dans chaque UIViewController, vous devrez remplacer la méthode shouldAutorotateToInterfaceOrientation et renvoyer une valeur booléenne pour chaque orientation de l'interface que vous soutenez:

// ViewControllerA 
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    return (interfaceOrientation == UIInterfaceOrientationPortrait); 
} 

// ViewControllerB 
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    return (interfaceOrientation == UIInterfaceOrientationPortrait || 
      interfaceOrientation == UIInterfaceOrientationLandscapeLeft || 
      interfaceOrientation == UIInterfaceOrientationLandscapeRight); 
} 

Pour plus d'informations, consultez le UIViewControllerclass reference.

+0

B ne tournera pas, parce que A est le portrait depuis qu'il a été poussé par un –

0

Jetez un oeil à AlternateViews Exemple de code Apple: c'est ce dont vous avez besoin.

+0

cela ne fonctionnera pas si un seul portrait soutient. B ne supportera que le portrait. –

+0

vous n'avez pas besoin d'écouter l'orientation changée comme le fait le code d'exemple Apple, il vous suffit de présenter un contrôleur de vue modale (B) avec le support des orientations souhaitées. Fondamentalement, vous aurez A avec un support d'orientation particulier et si vous souhaitez présenter un autre contrôleur de vue avec des orientations différentes, il suffit de le présenter comme un contrôleur de vue modale. En faisant ainsi, vous êtes capable d'échanger entre différentes orientations à la manière de la pomme. J'espère être utile. – marcio