SplitViewController pour afficher un menu à  gauche ?

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

Je continue ma refonte iPad et je souhaite utiliser le spliviewController pour afficher mon menu à  gauche et dans le controller principal (de droite), afficher les modules correspondants.


 


C'est un peu différent du Master/Détail puisque la vue de gauche est statique (pas de UINavigationController puisque c'est juste un menu) et celle de droite sera plutot un navigationcontroller.


 


Je me demandais si c'était une bonne pratique en fait ?


Car tous les exemples que je vois font plutot l'inverse...


 


Et si c'est correct, selon le choix du menu, je dois charger un ViewController différent. Je push simplement mon viewController sur le navigationController de droite ?


 


Du coup, mon storyboard se limite à  un splitView et ses 2 controllers ? (sachant que j'ai déjà  mes xib...)


Réponses

  • LeChatNoirLeChatNoir Membre, Modérateur

    Bon, visiblement, c'est parfois usité comme pratique.


    Un exemple simple est l'application réglages qui utilise un navigationController à  droite.


     


    J'ai donc transformé le simple view controller en navigation controller en faisant un "Embeed in navigation ctrl". J'ai configuré le navigationCtrl pour que la navigation bar soit non transparente.


     


    Au démarrage, pour l'instant, je ne charge rien. La navigation bar apparait. Mais dès que je push un controller, elle disparait...


     


    Une idée ?


     


     


  • LeChatNoirLeChatNoir Membre, Modérateur

    Hmmmm... Apparemment, c'est parce que j'utilise 


                        [self.splitViewController showDetailViewController:monCustomViewControllerAvecSonXib sender:self];


     

    Ce qui a pour effet visiblement de remplacer le navigationController par un simple viewController.
  • AliGatorAliGator Membre, Modérateur
    Je t'invite à  regarder la session de la WWDC 2014 dédiée aux Split View Controllers
Connectez-vous ou Inscrivez-vous pour répondre.