Navigation bar cachée dans UITableViewController

Bonjour



J'ai un petit soucis aujourd'hui avec une UITableViewController et une Navigation bar. Je m'explique :

J'ai une NavigationController (reliée à  une TableViewController) et une ViewController (voir photo jointe). Dans ma TableViewController, j'ai une Navigation Bar avec un UIBarButtonItem "+". Lorsque je clique sur celui-ci, ma ViewController apparait. Celle-ci me permet d'ajouter un objet dans mon tableView.

Lorsque je clique sur le bouton "Ajouter", ma TableViewController apparait avec mon tableView mais ma Navigation bar n'est plus là ... (voir photo jointe) Alors qu'elle était présente au démarrage.

Tout est fait avec Storyboard pour l'interface et les liens des boutons "+" et "Ajouter" sont "modals".



Quelqu'un a-t-il une idée du problème ?



Merci ! image/smile.png' class='bbc_emoticon' alt=':)' />

Réponses

  • KubernanKubernan Membre
    novembre 2012 modifié #2
    Suis pas sûr d'avoir bien compris le rôle de ton bouton "Ajouter". Est-il censé, au bout du compte, provoquer un dismiss de ton modal view controller représenté par la scene "Ajouter" ? Si oui, de quelle façon réalises-tu ce dismiss ?
  • gilvgilv Membre
    novembre 2012 modifié #3
    [font=verdana, geneva, sans-serif]Salut,[/font]



    [font=verdana, geneva, sans-serif]Tu n'utilises pas storyboard de la bonne manière ... le retour de ta vue "ajouté" a ta vue "liste" est géré [/font]

    [font=verdana, geneva, sans-serif]par le storyboard "Done".[/font]



    [font=verdana, geneva, sans-serif]A+,[/font]
  • 'gilv' a écrit:


    [font=verdana, geneva, sans-serif]Salut,[/font]



    [font=verdana, geneva, sans-serif]Tu n'utilises pas storyboard de la bonne manière ... le retour de ta vue "ajouté" a ta vue "liste" est géré [/font]

    [font=verdana, geneva, sans-serif]par le storyboard "Done".[/font]



    [font=verdana, geneva, sans-serif]A+,[/font]




    Hein ? Quoi ? Storyboard "Done" ??
  • Mon bouton "ajouter" ne provoque pas de dismiss sur modal ViewController. En fait, mon bouton me fait juste passer de ma ViewController "ajouter" à  ma TableViewController. Je n'ai fait aucun dismiss dans mon code. Tout est fait par storyboard.
  • 'Benjo'' a écrit:


    Mon bouton "ajouter" ne provoque pas de dismiss sur modal ViewController. En fait, mon bouton me fait juste passer de ma ViewController "ajouter" à  ma TableViewController. Je n'ai fait aucun dismiss dans mon code. Tout est fait par storyboard.




    Comment c'est possible ça ? Tu peux m'expliquer comment tu fais ?
  • Expliquer quoi ? Comment ne pas faire de dismiss sur le modal ViewController ?
  • Expliquer comment est gérée la transition entre ta scene "Ajouter" vers ta scene "Liste" avec ce fameux bouton "Ajouter". Un segue ??
  • Pour moi, c'est storyboard qui gère ça avec je ne sais pas quoi.
  • KubernanKubernan Membre
    novembre 2012 modifié #10
    'Benjo'' a écrit:


    Pour moi, c'est storyboard qui gère ça avec je ne sais pas quoi.




    C'est à  dire comme par magie ?



    Bon...







    Déjà , ta scene "Ajouter" contient un bouton Cancel qui est typiquement associé à  une navigation bar. Ta scène "Ajouter" doit donc être embeded dans un navigation controller.



    Ensuite, dans ta scene "Liste", ton segue devra désormais non pas pointer sur ta scene "Ajouter" mais directement sur le nouveau navigation controller qui lui est associé.



    Enfin comme Storyboard ne fait pas tout (pas encore en tout cas, loin de là ), que ce soit pour ton Cancel ou pour ton bouton Ajouter tu dois leur associer des actions, lesquelles vont se terminer par un appel à  ton delegate (ici il s'agit de ton controller qui correspond à  ta scene Liste) qui fera le dismiss.



    Y a un exemple très bien dans le doc Apple.
  • On voit mal sur la photo mais on dirait que tes segue sont de type push et non modal... dans ce cas ça explique qu'il n'y ait pas de dismiss.



    Si comme tu le dis tes segues en modal ton retour affichera une autre TableView modal ==> pas de navigation bar.



    ton cancel doit être associé à  une méthode de type :

    – dismissViewControllerAnimated:completion:



    Comme ça tu reviendras bien sur ta vu précédente.



    J'ai déjà  eu ce problème et c'est la seule solution que j'ai trouvé...
  • Merci pour vos conseils ! Merci aussi pour le lien dans la doc Apple. J'ai commencé à  regarder et ça a l'air vraiment intéressant !

    Merci ! image/smile.png' class='bbc_emoticon' alt=':)' />
  • 'Benjo'' a écrit:


    Merci pour vos conseils ! Merci aussi pour le lien dans la doc Apple. J'ai commencé à  regarder et ça a l'air vraiment intéressant !

    Merci ! image/smile.png' class='bbc_emoticon' alt=':)' />




    Je dirai que tu aurai dû commencer par la doc :-) Ce n'est jamais inutile de prendre le temps de fouiller dedans.

    Les sessions vidéos Apple (wwdc) sur Storyboard sont aussi intéressantes.
  • C'est ce que j'ai fait en fait. J'ai beaucoup cherché dans la doc et sur Google mais je n'ai rien trouvé. Du moins j'ai mal cherché. Par contre j'ai pas regardé du côté de WWDC sessions.
  • Voir celles de 2011 et 2012
Connectez-vous ou Inscrivez-vous pour répondre.