9
votes

Comment porter une application iPhone à l'iPad (Storyboard)

Je viens de terminer mon application iPhone et je veux le rendre universel. J'ai déjà lu quelques postes déjà mais ils sont un peu vieux (2010 ou plus).

ce que j'ai obtenu:

  • Application iPhone simple, créée récemment (iOS 5 - Storyboard), avec trois écrans.
  • Mon application représente une table avec trois cartes que vous pouvez rabatcher. L'utilisateur peut entrer (sur le second écran) du texte à afficher sur les cartes.
  • Quand j'ai créé le projet, j'ai vérifié "universel" alors j'ai deux scénaristes. Après cela, rien d'autre, j'ai dû faire avec iPad (à l'exception d'une ligne sur mon "support de contact" Option de courrier électronique où j'ai utilisé UimodalpresentationPagesHeet).

    ce que je voudrais accomplir:

    • Même application sur l'iPad: Mon application est si simple, je n'ai aucune utilisation pour des vues divisées ou des détails. Je veux juste les mêmes objets et la même mise en page, mais avec des graphismes plus gros et meilleurs (table, cartes, etc.).

      J'aime bien parce que cela ferait une grande migration de niveau d'introduction.

      Je ne sais pas où commencer. Lorsque j'exécute le simulateur iPad, un écran blanc apparaît et c'est tout.


7 commentaires

Erm ... L'édition du scénario iPad serait un bon endroit pour commencer.


Donc, pour votre version iPad, vous devez ré-faire tout le scénario et réutiliser le code? Ajoutez des boutons, des étiquettes et de chaque élément UI et de les connecter avec vos méthodes actuelles?


Yup, les plates-formes iPhone et iPad sont très, très simulateur. Outre quelques exceptions près, vous devriez pouvoir ne pas résoudre ce problème.


Salut @esqew. Je suis presque là. J'ai dupliqué chaque élément UI sur le nouveau storyboard. J'ai connecté presque tout. Les boutons déclenchent la SEGUE correctement et tous, mais les boutons qui vont avec les propriétés ne me permettent pas de les connecter. Lorsque j'essaie de le faire, Xcode veut insérer une nouvelle prise. Une idée? Peut-être que celles-ci doivent être dupliquées?


Cela dépend de la façon dont ils sont déclarés, je pense ...


Dans mon cas, la seule chose nécessaire pour pouvoir connecter les uibuttons au nouveau storyboard consista à ajouter la déclaration "iboutlet".


Stackoverflow.com/questions/8465769/... < / a> - discussion connexe


3 Réponses :


12
votes

Et bien cela est fait.

Comme presque tout, cela est assez facile une fois que vous savez quoi faire. P>

Je dirais que, pour les cas comme le mien, où l'interface utilisateur ne change pas plus que les tailles ou ( x, y) coordonne le processus peut se résumer comme suit: p>

  1. Répliquer chaque élément interface utilisateur sur l'iPad Storyboard (copier et coller le fera) et ajuster la position et la taille comme bon vous semble li>
  2. tout recâbler à nouveau. Chaque bouton, Segue (vous devrez ajouter le nom de Segue à nouveau aussi), etc. Li>
  3. Vérifiez dans votre code tous les endroits où votre interface utilisateur est affecté (par exemple les coordonnées x, y), identifier si l'application est en cours d'exécution sur un iPhone ou iPad, et diviser votre code en conséquence li>
  4. Si vous avez une localisation sur l'application que vous devrez mettre à jour les nouveaux éléments d'interface utilisateur sur le storyboard iPad li>
  5. Sélectionnez la cible pour le test sur le simulateur et l'essayer li> Ol>

    Afin d'identifier dispositif dans lequel l'application est en cours d'exécution, vous pouvez utiliser les éléments suivants: p>

    if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
        //I'm running on the iPad
    } else {
        //I'm running on the iPhone
    }
    



3
votes

Si vous souhaitez simplement réutiliser votre storyboard iPhone, allez simplement à vos paramètres de votre projet. Dans les cibles de l'onglet Info, il existe des lignes "Nom de la base du fichier de scénario principal" et "nom de base du fichier de scénario principal (iPad)". Il suffit de modifier l'iPad un pour avoir la même valeur que l'autre. Dans mon cas, je devais le modifier comme «nom de base du fichier de scénario principal (iPad) 'avec la valeur' ​​MainStoryboard_Iphone '.


1 commentaires

Définir des périphériques à Universal et cela fonctionne parfaitement (si votre autolayoue a raison)



4
votes

Ouvrez le fichier de scénario dans Finder, copiez votre iPhone-Storyboard et renommez-le principal-iPad.storyboard

Inside Xcode, clic droit sur le storyboard -> "Ouvrir comme" -> "Code source"

Recherche de TargeRuntime = "ios.cocoatouch" et faites-le CadreRuntime = "ios.cocoatouch.ipad"

Maintenant sauvegardez tout et rouvrez Xcode -> L'iPad-Storyboard contient la même chose que le fichier iPhone, mais tout le chacun pourrait être désarrangé, vous devez l'organiser par vous-même.

Enfin pour obtenir le format iPad modifier également le code dans la carte MainStoryboard_ipad.storyboard de: à

Ensuite, allez à votre fichier "stroryboarderex-info.plist", recherchez "Nom de la base de fichier de nib (iPad)" et faites-le "Main-iPad.storyboard"


0 commentaires