Problème de conversion d'une application iPhone vers iPad

chatonSauvagechatonSauvage Membre
06:15 modifié dans Vos applications #1
Bonjour,
Je m'adresse à  vous car je n'ai rien trouvé apres plusieurs jours de recherche.

Voila je développe une application iPhone qui doit évoluer vers iPad. Suivant les explications trouvées, j'ai dupliqué l'application et ainsi créer un dossier ressources-iPad avec tout mes nouveaux écrans jusque la pas de problèmes.

Maintenant je build la version iPhone afin de continuer le développement et voir si sa marche toujours et la Oh surprise certain des écrans affichés on des cellules de tailles d'iPad.

Est-ce déjà  arriver à  quelqu'un et pouvez vous m'aidez ?

Cordialement

Réponses

  • CéroceCéroce Membre, Modérateur
    06:15 modifié #2
    1) Déjà , es-tu sûr que les xib iPad sont utilisées sur l'iPhone? Tu pourrais utiliser un signe distinctif pour en être certain (mettre le fond d'une cellule d'une certaine couleur, par exemple).

    2) Si tu as dupliqué ton projet, normalement, les fichiers référencés devraient être ceux de la copie. Vérifie tout de même que les dossiers dans la barre de gauche apparaissent bien en jaune et pas en bleu. Dans ce second cas, Xcode conserve une référence vers le dossier sur le disque; il se peut que ce soit que le chemin soit absolu et non pas relatif au projet.
  • chatonSauvagechatonSauvage Membre
    06:15 modifié #3
    Merci pour ta réponse rapide.

    1) j'ai fait le test en changeant la couleur de mes champs de texte et au lancement l'appli à  utilisé les cellules iPad (coloré) pour construire l'écran iPhone

    2) A l'origine j'ai dupliqué un projet iPhone pour en faire un double en version iPad ... La version iPad fonctionne sans problème et pointe bien sur les écrans situé dans le dossier 'ressources-iPad'.  Le problème vient de la version d'origine qui depuis la duplication ne fonctionne plus correctement
    Par contre pour les couleurs bleu et jaune je n'en ai pas du tout donc je ne voie pas à  quoi sa correspond (tout les programmes de dev ont leurs dernière mise a jour d'installer)
    Apres il y a peut-être moyen dans les fichier '.h' ou '.m' de lui dire sur quel fichier '.xib' pointer en fonction de l'appareil utilisé (je sais faire le test pour l'appareil mais il ne me semble pas que l'on puisse lui définir en dur ce genre de chose)


    Si jamais tu as une idée je suis preneuse car sinon il faudra que j'arrive a maitenir 2 appli distinct qui font exactement la mm chose mais pour des appareils de taille différente.
  • chatonSauvagechatonSauvage Membre
    06:15 modifié #4
    J'ai recherché apres avoir changer la couleur des cellules[img][/img] il y avait un problème au niveau de la définition de mes fichiers .xib du projet iPad:
        dans le File Inspector au niveau du Target Membership le projet source et le projet dupliqué était coché; pendant le build il ne savait pas sur quel .xib pointer.

    il me reste cependant un souci de compatibilité
    j'ai une page du programme dans lequel on retrouve des #define utilisé dans tout le programme et certain doivent être modifié en fonction du device mais si je fait:
    <br />#define IS_IPHONE (!IS_IPAD)<br />#define IS_IPAD (UI_USER_INTERFACE_IDIOM() != UIUserInterfaceIdiomPhone)<br />
    


    et ensuite dans la même page

    <br />if (IS_IPHONE)<br />{<br />#define NAVIGATIONCELL_HEIGHT 44<br />#define SEARCHCELL_HEIGHT 44<br />#define TWOELEMENTCELL_HEIGHT 44<br />#define TWOELEMENTEDITCELL_HEIGHT 65<br />#define TWOELEMENTBIGCELL_HEIGHT 120<br />}<br />if (IS_IPAD)<br />{<br />#define NAVIGATIONCELL_HEIGHT 63<br />#define SEARCHCELL_HEIGHT 63<br />#define TWOELEMENTCELL_HEIGHT 63<br />#define TWOELEMENTEDITCELL_HEIGHT 90<br />#define TWOELEMENTBIGCELL_HEIGHT 160<br />}<br />
    


    ça ne fonctionne pas
  • iSofTomiSofTom Membre
    06:15 modifié #5
    Tu ne peux pas changer la valeur d'un define en fonction du device car les define sont là  uniquement pour la compilation, or au moment de la compilation tu ne sais pas encore sur quel device ça va tourner.

    Par contre tu peux mettre deux define, un pour iPhone et un our iPad, et choisir le define qui va bien au runtime.
    ou bien des variables d'instances ou static que tu modifies au début pour avoir les bonnes valeurs.
    ou bien un objet avec des méthodes qui vont juste renvoyer la bonne valeur, et c'est cet objet qui va checker le device.

    Plein de façons de faire, en tout cas il faut bien le faire au runtime et non a la compilation!
  • chatonSauvagechatonSauvage Membre
    06:15 modifié #6
    ??? là  j'ai pas tout compris
    j'ai repris l'application au pied lever sans explication et sans documentation depuis à  peine 1 mois et demi et je ne connaissais pas Mac et Xcode du tout avant sa donc je suis perdu.
    je comprend l'idée des 2 define en fonction du device par contre au niveau de l'appel au runtime là  je suis perdue
    y'a t'il un endroit ou je pourrais trouver de la doc à  ce sujet (en français si possible) o:)
Connectez-vous ou Inscrivez-vous pour répondre.