2014-07-07 6 views
0

J'ai préparé le storyboard montré dans l'image: l'application doit travailler uniquement dans le paysage (à droite). L'orientation des différents contrôleurs est définie via le champ "métrique simulée".UIViewTransitions avec la mauvaise orientation

Quand je passe du premier contrôleur au second, la transition glissante a l'orientation correcte: le contenu coule horizontalement en mode paysage.

Lorsque je passe du second contrôleur au premier, la transition de glissement est incorrecte. Il est affiché comme s'il était en mode portrait.

Tous les contrôleurs de vue (et les paramètres de projet) spécifient juste paysage comme la seule orientation acceptable.

Storyboard

Project settings

Methods in the UIViewControllers

La poussée de la première à la seconde est activé par un GestureRecognizer (swipe gauche): il est géré directement à partir de la table de montage (I ajouté un GestureRecognizer sur la vue, etc.).

Le pop de la deuxième à la première vue est fait par programmation. J'ai un GestureRecognizer pour l'événement Swipe Right et le pop est demandé dans la méthode IBAction.

Pop to previous controller

Est-ce qu'il ya quelqu'un qui peut me expliquer la raison de son comportement?

+0

Comment passez-vous de la première à la seconde? Modal? ou simple pousser? – iphonic

+0

J'ai ajouté l'information à la question. –

Répondre

0

Je suggère de créer une classe de type UINavigationController, mettre tout le code de rotation à l'intérieur de cette classe, assigner la classe à StoryBoard UINavigationController, supprimer le code de rotation de ViewController, il devrait fonctionner.

+0

Beaucoup de travail. N'y a-t-il pas un simple 'truc' à faire pour obliger le contrôleur de navigation à respecter la seule orientation prise en charge? –

+0

C'est le moyen le plus simple, il ne prendra même pas 1 minute à faire. – iphonic

+0

Pas besoin d'étudier la logique de UINavigationController et comment il gère les animations :-) –

Questions connexes