Xcode & XIB : Choisir un ViewController en fonction de l'orientation de l'iPhone
Bonjour à tous,
Sur mon application, j'aimerais avoir un design totalement différent lorsque je passe d'un mode portrait à un mode paysage (à l'instar de ce que nous trouvons dans l'app santé dans le suivi de la distance parcouru). Est il possible dans XIB de définir un ViewController par orientation ? Le but serait de pouvoir designé chaque mode depuis le constructeur d'interface... ::)
Merci par avances pour vos réponses.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Tu pourrais t'en sortir avec un seul XIB mais deux grosses vues principales entre lesquelles tu switcherais selon l'orientation.
Problème de cette solution : tu vas devoir créer deux fois plus d'IBOutlets...
Merci pour vos réponses !
C'est ce que j'ai fait mais je trouve pas ça extraordinaire. Lorsque l'orientation de l'iPhone change, je cache un view et je fais apparaà®tre l'autre mais ce n'est pas extraordinaire comme solution...
Jérémy, regardes les screenshots de mon appli FestJazz sur l'AppStore iOS, surtout ceux pour les iPhone. Tu y verras que les agencements pour portrait et paysage sont tout différents, mais ce n'est qu'un seul contrôleur avec l'autolayout. Quand même, il n'y a pas de IBOutlet sauf ceux pour connecter les controls au contrôleur
D'accord, je vais jeter un oeil.
Salut Joanna, j'ai regardé ton app et c'est exactement ce que j'aimerais faire. Tu peux m'aiguiller (tuto ou autre) pour j'apprenne à le faire ?
Tu peux dessiner les agencements que tu veuilles ?
Je te présente mes excuses d'avoir pris autant de temps pour te répondre.
Je t'ai fait un petit schéma de ce que j'aimerais arriver à faire.
Je te remercie par avance pour ton retour.
Un peu comme ci ?
C'est seulement pour iPad ou iPhone aussi ?
Oui et non. Oui car effectivement tu dois faire apparaà®tre un nouvel élément sur la gauche de ta UIView mais les deux blocs doivent êtres aux mêmes dimensions.
Mais dans l'esprit c'est ce que j'aimerais faire.
Mais, je répète ma question - tu prévois l'app pour l'iPad ou l'iPhone aussi?
Est ce que tu veux qu la partie gauche s'affiche sur la partie droite en mode portrait, en tappant sur un bouton ?
Oooooops j'ai zappé ta question.
Uniquement sur iPhone.
En mode portrait, la partie de gauche (UIView B ) ne sera pas proposé alors qu'elle sera "imposé" en mode paysage.
Les informations présentes dans la vue UIView B sont secondaires, elles enrichissent les infos principales qui se situent dans la UIView A. C'est un peu comme une cerise sur un gâteau, ça le rend plus attrayant mais ce n'est pas indispensable.
C'est un peu surprenant comme mode de fonctionnement.
C'est un comme l'app santé. Quand tu es en mode portrait, tu as les datas et quand tu passes en paysage tu as un graphique. Ce que je veux faire c'est ni plus ni moins la même chose.
Bien que l'app provienne d'Apple, c'est pas vraiment une bonne idée d'avoir un comportement que l'on manque dans une des orientations.
Je souhaite juste afficher (grosso modo) une horloge digitale dans la partie de gauche alors que les valeurs numériques seront à droite. Franchement on ne perd pas grand chose...
Je ne veux pas t'embêter mais - pourquoi ?
Pour rendre l'app plus attryante
Pour rendre l'app plus attrayante. ^_^
Et, si les utilisateurs ne tournent jamais leurs iPhones du mode portrait ?
Ce n'est pas grave.
Un des principes très importants, c'est le "discoverability". Il ne sert à rien de faire les fonctionnalités que personne ne puisse pas trouver.
Pourquoi pas avoir un bouton sur la UIView A (en mode portrait), qui découvre la UIView B ?
Sur un iPad, on pourrait utiliser le UISplitViewController mais, pour l'iPhone il te faudrait manipuler les contraintes toi-même; mais, quand même, c'est possible.
Ca n'apporte pas grand chose.
D'accord.