2010-06-16 2 views
0

J'ai un problème avec Cocoa touch et l'orientation paysage.iPhone - ajouter des vues et l'orientation paysage

J'instancie ma vue depuis un fichier .xib; j'ai ajouté dans ma vue contrôleur

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

pour permettre uniquement l'orientation paysage.

Ce travail trouve pour la première vue que j'ajoute .. si j'ajoute une seconde vue cependant il est tourné de nouveau comme la vue de paysage est montrée en mode portrait (rotation 90 degrés antihoraire). Je ne sais vraiment pas ce qui se passe et je ne trouve pas de solution de contournement. J'ai même essayé de se placer derrière ce qui se passe juste en ajoutant mon avis deux fois:

MainMenuViewController* controller = [[MainMenuViewController alloc] initWithNibName:@"MainMenu" bundle:nil]; 
[window addSubview: controller.view]; 

MainMenuViewController* controller2 = [[MainMenuViewController alloc] initWithNibName:@"MainMenu" bundle:nil]; 
[window addSubview: controller2.view]; 


[window makeKeyAndVisible]; 

La vue du contrôleur est affiché correctement, tandis que la vue de Controller2 est une rotation de 90 degrés. Est-ce que quelqu'un a une idée de comment cela peut arriver? Merci de votre aide.

Répondre

0

Peut-être vous shoud mis

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

également dans votre mainMenuViewController

+0

qui est exactement ce que je l'ai fait. le problème est, que l'orientation fonctionne pour la première instance. la deuxième instance est pivotée de 90 degrés. J'ai maintenant fait une solution de contournement en attachant une vue entre ma fenêtre et mes vues personnalisées que je change par le code. Cela semble fonctionner. néanmoins c'est un comportement étrange que je ne comprends pas. – Franz

Questions connexes