2010-08-04 5 views
1

J'ai un projet assez lourd, où je charge quelques contrôleurs de vue, l'un après l'autre. Tout d'abord, un écran de démarrage, suivi d'un système de menus, et lorsque l'utilisateur clique sur le menu, il passe par un contrôleur de vue d'article. Mettre tous ces éléments dedans avec shouldAutorotate ... régler sur YES pour toutes les rotations, cela fonctionne très bien. Cependant, j'ai une barre de menu que je dois glisser vers le haut quand un geste de robinet a été reconnu. J'en ai un pour le menu principal, et un pour la vue de l'article.Pourquoi l'iPad cesse-t-il de tourner automatiquement lorsque je commence à superposer les contrôleurs de vue?

Si je mets l'un d'entre eux, il tourne toujours bien. Cependant, dès que je mets le suivant, la rotation automatique cesse de fonctionner. J'ai essayé de placer les barres de menu dans le délégué d'application, aussi bien que les emboîter dans les contrôleurs de vue de menu/article. Le contrôleur de vue de la barre de menus a également shouldAutorotate ... défini sur YES. En fait, chaque contrôleur de vue dans le projet (tous les 7 d'entre eux) l'a mis à OUI. Et pourtant, quand j'ajoute mon deuxième contrôleur de barre de menu, il arrête la rotation automatique. Il ne déclenche même pas la méthode "shouldAutorotate" pour le demander.

Le code est trop volumineux pour être affiché ici, mais si vous souhaitez voir quelque chose en particulier, il suffit de le demander. Je suis totalement perplexe! Je suis sur le point de retirer les barres de menu de leur contrôleur de vue et de les coder individuellement dans chacun des contrôleurs de vue. Ce sera une quantité hideuse de duplication de code, mais je ne peux pas penser à un autre moyen autour de lui!

Des idées? Merci!

Répondre

0

La réponse semble être ... Ne placez pas les contrôleurs de vue dans d'autres contrôleurs de vue! Un contrôleur de vue = un écran, semble être la règle. J'ai beaucoup à apprendre!

+0

Naw qui n'est pas le vrai compagnon. Pensez à tabBar et navigatoroncorllers – Faser

+1

@UrbanSeifert - true, mais ils semblent être des cas intégrés spéciaux. Il y a quelque chose à propos de la mise en place de contrôleurs de vue personnalisés dans d'autres contrôleurs de vue personnalisés qui casse certaines fonctionnalités. Il se peut que l'on doive implémenter une méthode et passer une valeur, mais il n'y a rien dans la documentation à ce sujet. En conséquence, ce faisant, je trouve que la fonction autorotate est cassée. Et j'ai regardé des tutoriels de Stanford qui disent que c'est aussi une mauvaise pratique. – jowie