Utiliser le storyBoard uniquement pour iPad

LeChatNoirLeChatNoir Membre, Modérateur
janvier 2015 modifié dans API UIKit #1

Hello,


 


Je bosse sur une mise à  jour de mon appli qui est universelle. La version iPhone est finalisée et je vais maintenant me pencher sur la version iPad.


 


Je n'ai jamais utiliser les storyboard et pour la version iPad, comme je vais implementer un SpliViewController, je me demandais si je me lancerai pas.


 


La question est donc, est-ce possible ?


J'imagine que je dois créer un storyboard et que tout va se jouer dans le appDelegate ?


Réponses

  • DrakenDraken Membre
    janvier 2015 modifié #2


    Je bosse sur une mise à  jour de mon aoppli qui est universelle.

    Une aoppli c'est une application avec appelation d'origine ?
  • LeChatNoirLeChatNoir Membre, Modérateur

    corrigé :)


  • LeChatNoirLeChatNoir Membre, Modérateur
    janvier 2015 modifié #4

    Bon alors, après qques recherches, il semblerait qu'on ne peut avoir les 2 clés en même temps dans les properties :


    -> main nib file base name


    -> main storyboard file base name


     


    Xcode génère un warning et j'ai lu qquepart que c'était source de rejet d'appli.


     


    Il est donc visiblement conseillé de créer 2 storyboard : 


    -> 1 pour iPhone dans lequel il suffirait juste de "glisser" le MainWindow.xib précédent


    -> 1 pour iPad


     


    Seulement, je suis noob et je n'arrive à  glisser mon xib nul part....

  • LeChatNoirLeChatNoir Membre, Modérateur

    Ok, finalement, pas besoin de glisser quoi que ce soit.


     


    Dans mon StoryBoard iPhone, je glisse un UINavigationViewController, je le défini comme "Init VC" et comme classe, je lui colle ma classe RootController perso.


     


    Dans mon application delegate, j'ai remplacé la vieille méthode :


    - (void)applicationDidFinishLaunching:(UIApplication *)application {


     

    par la nouvelle 


    -(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {


     

    dans laquelle je retourne YES à  la fin.

    Je supprime au passage ce bout de code qui date de 2012 :


     


    CGRect  rect = [[UIScreen mainScreen] bounds];


    [window setFrame:rect];


    [window addSubview:[navigationController view]];


    window.rootViewController=navigationController;


    [window makeKeyAndVisible];




     


    Et ça semble fonctionner. Je continue mes investigations ;)


  • LeChatNoirLeChatNoir Membre, Modérateur

    Le dernier truc qui me gène maintenant, c'est que le navigationController dans le storyboard est forcément un UITableViewController... Pas un UIViewController.


     


    Ca me gène car moi, j'avais une petite image en surimpression de ma tableView et là , je vois pas comment la mettre....


     


    Une idée ?


  • Tu peux glisser une tableView dans le viewController du storyboard si ça t'arranges mieux comme ça, tu n'est pas obligé d'utiliser directement un tableViewController.
  • LeChatNoirLeChatNoir Membre, Modérateur

    Oui merci :)


    Je découvre storyboard alors excusez mes lacunes...


    Effectivement, le NavigationController a par défaut un tableview controller comme rootView mais on peut très bien l'effacer et le remplacer par un UIViewController.


     


    C'est ok pour le côté iPhone, ça fonctionne.


    Maintenant, reste à  m'atteler à  la partie iPad.


     



  • Je t'en pries ! StoryBoard c'est fun et puissant donc pas vraiment de raison de ne pas s'y mettre. Bonne continuation dans ta découverte. :)


     


    Bon dimanche ! 


  • Joanna CarterJoanna Carter Membre, Modérateur

    Pour faire les storyboards différents, pour iPad et iPhone, il faut régler le truc au fond. Avant de mettre quelque chose sur le view, cliques sur Any Width | Any Height et changes le vers Compact | Regular - ça te donne une vue pour les iPhones de toutes tailles en portrait. Positionnes les contrôles comme tu veux pour cette disposition.


     


    Puis, cliques sur Compact | Regular et changes le vers Regular | Compact - ça te donne en plus une vue pour les iPhone de toutes tailles en paysage. Positionnes les contrôles comme tu veux pour cette disposition.


     


    Puis, cliques sur Regular | Compact et changes le vers Regular | Regular - ça te donne en plus une vue pour les iPad, soit en portrait, soit en paysage. Positionnes les contrôles comme tu veux pour cette disposition.


     


    De mon avis, c'est au même temps pratique et frustrant. Je préfère les storyboards séparés, mais Apple a parlé et il faut changer  >:(


  • AliGatorAliGator Membre, Modérateur
    Rien ne t'empêche de continuer à  utiliser des storyboards séparés Joanna. Tu n'es en rien obligée d'utiliser les SizeClasses.
  • Joanna CarterJoanna Carter Membre, Modérateur
    Bah oui mais il me semble qu'Apple veut nous "encourager" à  changer ;)
  • AliGatorAliGator Membre, Modérateur
    Oui et ça se comprend car c'est mieux pour la maintenance aussi. Mais tout comme tu peux encore utiliser des XIB alors que les storyboards existent maintenant depuis un bail tu peux aussi continuer sans les SizeClasses aussi.
Connectez-vous ou Inscrivez-vous pour répondre.