Question

Je suis en train de construire une application iPhone qui a deux sous-vues dans la fenêtre principale. Chaque vue a sa propre sous-classe UIViewController associée. En outre, dans la mise en œuvre de chaque contrôleur, j'ai ajouté la méthode suivante:

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

Ainsi, je me attends à la fois des points de vue de répondre aux changements d'orientation. Cependant, ce n'est pas le cas. Seuls les premier vue ajouté à la fenêtre principale de l'application répond à l'orientation. (. Si j'échange l'ordre les vues sont ajoutées, alors que l'autre point de vue d'autres termes répond par, soit fonctionnera -. Mais seulement un à la fois)

Pourquoi est-ce? Est-il pas possible de gérer les changements d'orientation de plus d'un point de vue?

Merci!

EDIT: Quelqu'un d'autre avait cette question, donc je copier ma solution ici:

J'ai pu résoudre ce problème en fournissant une vue racine et un contrôleur de vue racine avec la méthode « shouldAutoRotate ... » et en ajoutant mes autres vues que subviews à la vue racine. Les sous-vues hériteront le comportement de l'auto-rotation, et leurs contrôleurs de vue associés ne devraient pas avoir à remplacer « shouldAutoRotate ... »

Était-ce utile?

La solution 2

Enfin va poster ici ma solution:

En fait, il est descendu à avoir une « racine » UIViewController. En cela, j'ai la méthode:

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

J'ai aussi ajouté les vues que je voulais l'auto-rotation comme subviews à cette racine de UIView UIViewContoller. Ces sous-vues ont également des contrôleurs de vue mais font pas override shouldAutorotateToInterfaceOrientation. En fait, l'ajout de cette méthode pour les contrôleurs vue semble avoir aucun effet. Seul le shouldAutorotateToInterfaceOrientation de la vue racine contoller semble fonctionner et tous les sous-vues se tourner correctement.

Autres conseils

Vous devez remplacer la méthode de shouldAutorotateToInterfaceOrientation sur les trois contrôleurs que vous avez.

vous pouvez essayer de mettre en œuvre cette méthode dans la classe, qui contient à la fois vue vues de votre viewController

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top