2010-09-22 14 views
0

Ceci est la suite d'une question précédente que j'ai demandé: iPhone View Strategyvue iPhone ne tourne pas

Je suis maintenant en utilisant la méthode suivante pour basculer entre les vues:

UIWindow *window = [[UIApplication sharedApplication] keyWindow]; 
[window setRootViewController:[self gameViewController]]; 
[[[self gameViewController] view] becomeFirstResponder]; 

Le problème que j'ai est qu'aucune de mes vues ne tourne correctement (la barre d'état tourne mais rien d'autre). La vue initiale est correcte, mais toutes les vues que je navigue en utilisant la méthode ci-dessus ont le problème avec la rotation.

J'ai mis en œuvre la méthode shouldAutorotateToInterfaceOrientation dans tous mes contrôleurs de vue comme suit:

// Override to allow orientations other than the default portrait orientation. 
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    // Return YES to allow autorotation 
    return YES; 
} 

Cela est devenu un peu d'un point d'achoppement pour moi. Des idées?

Merci, Alan

+2

[Exact dupliquer] (http://stackoverflow.com/questions/3773012/iphone-view-wont-rotate) –

+0

Désolé, nous avons supprimé l'autre! –

+0

Ce n'est pas la manière normale de changer de vue ... –

Répondre

0

avez-vous UITabBarController là-dedans?

+0

Je n'utilise pas UITabBarController. J'utilise simplement les contrôleurs de vue par leurs propres moyens. –

0

La méthode shouldAutorotateToInterfaceOrientation devrait aller dans le contrôleur de vue en cours pour les vues, pas les UIViews elles-mêmes.

+0

Désolé pour la confusion, je parlais de mon point de vue contrôleurs pas vues. J'ai modifié mon message original. –

1

C'est peut-être la manière dont vous affichez vos vues. J'avais ce problème avec un popover qui affichait une fenêtre modale. Toujours pas sûr de ce qui causait le problème, pense que c'était un bug Apple. Pourquoi ne pas essayer de faire quelque chose comme ceci:

[window addSubview:gameViewController.view]; 
[window makeKeyAndVisible]; 

Cela suppose que votre gameViewController est initialisé ailleurs dans votre code. Je ne sais pas si c'est ce que vous cherchez, mais cela peut fonctionner.