UINavigationBar et UITableView

kev_0777

Membre enregistré
25 Novembre 2011
5
0
Bonjour,

Voilà mon problème :

Au lancement de l'application, j'ai une liste de flux RSS dans un UITableView (Première cellule : LeMonde à la Une, Deuxième cellule : Sport.fr pour vous donner une idée).
Dans un autre UITableViewController je récupère tout ce dont j'ai besoin du flux RSS "LeMonde" que j'affiche dans une UITableView.
Encore dans un autre UITableViewController je récupère ce dont j'ai besoin du flux RSS "Sport.fr" que j'affiche aussi dans une UITableView.


Voila ma question :

J'aimerai lorsque je clique sur la première cellule (LeMonde à la Une) de la UITableView de lancement d'application, qu'il me renvoi sur la UITableView qui correspond au flux RSS Parser.

Je sais que le code a écrire est a mettre dans la fonction "didSelectRowAtIndexPath" mais je ne sais pas du tout comment m'y prendre.

Help please.
 
C'est en effet dans le didSelectRowAtIndexPath: que tu dois instancier ton second controller et dire au UINavigationController de le pusher.

Si tu as fait les choses correctement, tu as instancé un UINavigationController au lancement de ton appli, et tu lui as assigné ton premier UITableViewController (contenant les différents flux) comme rootController ; tout ce qu'il reste à faire, c'est qu'au tap sur une cell de la UITableView du premier controller, ton deuxième controller soit instancié et poussé dans la navigation.

Donc en gros ça donnerait dans ton didSelectRowAtIndexPath :
UITableViewController2 *tvc = [[UITableViewController2 alloc] initWithNibName:@"TonXib" bundle:[NSBundle mainBundle]];
[self.navigationController pushViewController:tvc animated:YES];
[tvc release];

Pour anticiper ta prochaine question : l'index de la cell sur laquelle l'utilisateur a tapé est renvoyé via indexPath.row dans le didSelectRowAtIndexPath:.
 
C'est en effet dans le didSelectRowAtIndexPath: que tu dois instancier ton second controller et dire au UINavigationController de le pusher.

Si tu as fait les choses correctement, tu as instancé un UINavigationController au lancement de ton appli, et tu lui as assigné ton premier UITableViewController (contenant les différents flux) comme rootController ; tout ce qu'il reste à faire, c'est qu'au tap sur une cell de la UITableView du premier controller, ton deuxième controller soit instancié et poussé dans la navigation.

Donc en gros ça donnerait dans ton didSelectRowAtIndexPath :
UITableViewController2 *tvc = [[UITableViewController2 alloc] initWithNibName:@"TonXib" bundle:[NSBundle mainBundle]];
[self.navigationController pushViewController:tvc animated:YES];
[tvc release];

Pour anticiper ta prochaine question : l'index de la cell sur laquelle l'utilisateur a tapé est renvoyé via indexPath.row dans le didSelectRowAtIndexPath:.


Merci pour ta réponse, sa marche mais mon problème maintenant c'est que dans le UITableView au lancement de l'appli (avec les différents flux) sur chaque cellule où j’appuie, sa me renvois sur toujours le même UITableView (celui qui contient les données parser qui concerne LeMonde).

Ce que je voudrais c'est que quand je clique sur la première cellule (LeMonde) il me renvoi sur le UITableView qui contient les données parser qui concerne LeMonde et quand je clique sur la deuxième cellule (Sport.Fr), il me renvoi sur le UITableView qui contient les données parser qui concerne Sport.Fr..


PS. Je peux t'envoyer mon projet si tu ne comprend pas ce que je veux dire (ce projet n'a aucun but lucratif, c'est juste pour l'entrainement et comprendre CocoaTouch).
Merci d'avance pour la réponse.