2010-09-14 10 views
1

J'ai un bouton dans mon RootViewController .... quand je clique sur ce bouton, il va naviguer vers un autre contrôleur de vue. mais je veux que lorsque je clique sur le bouton Orientation otherViewController devrait être Paysage & quand je reviens de cette page (otherViewController) je devrais avoir à nouveau le mode portrait.Fixation de l'orientation des contrôleurs de vue

beaucoup de Merci pour toute aide. Plz aidez-moi je suis nouveau dans Iphone donc impossible de gérer cela.

Répondre

0

En général, l'orientation ne devrait changer que de portrait en paysage (ou vice versa) lorsque l'utilisateur fait pivoter l'appareil. Cependant, si vous voulez que votre RootViewController présente toujours sa vue en mode portrait et que votre OtherViewController affiche toujours sa vue en mode paysage, c'est assez facile.

Dans votre .h de RootViewController:

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

Dans votre .h de OtherViewController:

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

Bien que ce serait probablement préférable car elle permettrait à la fois des rotations de paysage à gauche et à droite paysage:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    return UIInterfaceOrientationIsLandscape(interfaceOrientation); 
} 
+0

Salut shaggy ....
user440485

+0

Je suis désolé, mais il ne donne pas l'otherViewController en paysage sur Buton cliquez. – user440485

+0

J'utilise 4.0 .. – user440485

-1

Peut-être que cela aide.

dans viewWillAppear de votre nouveau contrôleur de vue ajouter

[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationLandscape] 

et viewWillAppear de votre racine viewController ajouter

[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationPortrait]; 

Il cause de l'avertissement, mais il fonctionne.

+1

En outre, il s'agit d'une API non documentée et la cause du rejet de l'application. –

1

Note dans iOS 6 shouldAutorotateToInterfaceOrientation est deprecated. Au lieu de cela, vous devez utiliser supportedInterfaceOrientations et renvoyer un UIInterfaceOrientationMask.

Ainsi, par exemple:

- (NSUInteger)supportedInterfaceOrientations { 
    return UIInterfaceOrientationMaskLandscape; 
} 

Voici toutes les options UIInterfaceOrientationMask vous pourriez revenir:

UIInterfaceOrientationMaskAll 
UIInterfaceOrientationMaskAllButUpsideDown 
UIInterfaceOrientationMaskLandscape 
UIInterfaceOrientationMaskLandscapeLeft 
UIInterfaceOrientationMaskLandscapeRight 
UIInterfaceOrientationMaskPortrait 
UIInterfaceOrientationMaskPortraitUpsideDown 

Vous devriez également considérer le preferredInterfaceOrientationForPresentation.