tab bar et navigation controller

Salut,


je détail mon probleme.


Em gros j'une page de login qui a travers un segue envoie des datas a la premiere page d'un tab bar controller( celui ci en contient 5). quand ma desVIew est une simple view controller tout va bien  mais lorsque j'embarque cette premiere page dans un navigation controller. j'obtiens un crash avec l'erreur suivante.


[UINavigationController setIden:]: unrecognized selector sent to instance


voici mon segue


-(void)prepareFOrSegue:(UIstoryBoardSegue *)segue sender:(id)sender


{


if([[segue identifier] isEqualToString:@login])


       homeViewController *destView=((UITabController *)segue.destinationController).viewControllers[0];


       destView.iden=barCOde;


}


je pense que cela vient du fait que ma destination est un navigation controller mais je vois pas comment regler ce probleme.


merci


Réponses

  • UPDATE:


    en modifiant dans le segue la ligne suivante:


    homeViewController *destView=((UITabController *)segue.destinationController).navigationController.viewControllers[0];


     


    jai reussi a afficher sans avoir de crash mais maitenant cest la valeur que je souhaite passer en segue qui est null> jai NSLog   destView.iden  et cela ma renvoye null


  • LeChatNoirLeChatNoir Membre, Modérateur

    Les guidelines déconseillaient pdt un moment de mélanger tabbar et NavigationController...


     


    Je sais pas si c'est tjs le cas.

  • CéroceCéroce Membre, Modérateur

    Je ne sais pas quoi te dire sinon d'UTILISER LE DEBOGUEUR POUR DEBOGUER. Utiliser NSLog() pour déboguer donne beaucoup moins d'informations et oblige à  recompiler sans cesse. Là , tu ne comprends pas le cheminement de ton programme, et ne connais pas les classes des tes objets.


     


    Utiliser le débogueur n'est pas difficile: on place un point d'arrêt dans la marge de gauche et le programme s'arrête. Ensuite, dans le panneau à  gauche, on peut voir les valeurs des variables.


  • ça s'rait sympa d'utiliser les balises code.


     


    Ensuite, il faut respecter quelques nomenclatures: homeViewController => HomeViewController pour les noms de classe.


    Je ne sais pas où et quand tu as fait ton NSLog(). Mais ça s'rait sympa de l'indiquer.


    destView est nil ?


     


    Sinon, je n'ai rien contre les NSLog(), ça permet de garder des traces, d'éviter 36 BreakPoints mais dans ton cas, j'ai quand même l'impression que le Debugguer et ses BreakPoints seraient d'une plus grande aide.


  • Il faut que tu regardes les valeurs de ((UITabController *)segue.destinationController).navigationController et de ((UITabController *)segue.destinationController).navigationController.viewControllers[0]


    Il n'est pas impossible que l'une de ces deux valeurs soit nulle. Je ne me souviens plus du détail mais je crois que j'avais eu des soucis de compréhension du cycle de chargement des vues d'un contrôleur de navigation.


Connectez-vous ou Inscrivez-vous pour répondre.