2010-02-15 5 views
2

J'utilise un contrôleur de navigation et j'ai une vue particulière qui ne se comporte pas bien lorsque je suis en mode paysage. J'ai fait une version "paysage optimisé" de cette vue et quand l'utilisateur tourne l'iPhone, je voudrais passer de la version de Portait à la version de paysage. La raison en est que j'ai 0 - 9 en format calculatrice classique 3 x 3 + 1 qui se cache.Comment basculer les vues lors de la rotation

Je pensais que je serais capable de le faire avec le WillRotate et de faire apparaître l'affichage actuel de la pile de NavigationController et de le remplacer, mais cela crée une exception.

Des idées? Je voudrais qu'il soit animé et si possible, cela ne semble pas évident pour l'utilisateur.

Répondre

4

Je blogué à ce sujet ici: http://escoz.com/blog/displaying-different-views-when-iphone-is-rotated-with-monotouch/

Il explique comment le téléphone est voir l'événement de rotation ainsi que la façon de changer de vue. J'espère que c'est utile. Le code est dans GitHub, comme Rob pointé ci-dessus: http://github.com/escoz/monotouch-controls/blob/master/UICatalog/RotatingViewController.cs

Il ne fait actuellement aucune animation supplémentaire (autre que l'effet "rotation"), mais il ne devrait pas être trop difficile à implémenter. N'hésitez pas à contribuer sur GitHub si vous faites cela!

+1

Le lien a changé: http://escoz.com/blog/displaying-different-views-when-iphone-is-rotated-with-monotouch/ – basarat

+0

Je viens de remarquer que l'exemple (code/projet) ci-dessus fait ne pivote pas en vue paysage. La barre de navigation disparaît en effet, mais pas la vue lorsque le téléphone est tourné sur le côté. Le texte finit par être vertical (latéralement) lorsqu'il est changé en paysage. –

+0

Ils @ryananderson .. Je ne serais pas surpris si c'est un gros avec une nouvelle version d'iOS, parce que le code est vraiment vieux .. Apple a en effet changé les méthodes de rotation sur les viewControllers dans iOS6. –