Comment recharger tableView à chaque affichage ?
Bonjour,
J'ai un petit souci avec mon application. A partir du premier onglet de ma tabBar, je peux ajouter des données dans un fichier.
Le deuxième onglet permet l'affichage des données.
Mon souci est que l'affichage du second onglet est chargé une seule fois (au premier chic sur l'onglet 2). Donc si je reviens au premier onglet, que j'ajoute des infos, elles ne seront pas affichées sauf si je relance l'application.
Est-il possible de lancer une fonction à chaque affichage de l'onglet?
Merci
iPatx
J'ai un petit souci avec mon application. A partir du premier onglet de ma tabBar, je peux ajouter des données dans un fichier.
Le deuxième onglet permet l'affichage des données.
Mon souci est que l'affichage du second onglet est chargé une seule fois (au premier chic sur l'onglet 2). Donc si je reviens au premier onglet, que j'ajoute des infos, elles ne seront pas affichées sauf si je relance l'application.
Est-il possible de lancer une fonction à chaque affichage de l'onglet?
Merci
iPatx
Cette discussion a été fermée.
Réponses
Regarde la doc... il manque certainement le booléen à la fin.
http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIViewController_Class/Reference/Reference.html#//apple_ref/occ/instm/UIViewController/viewWillAppear:
En fait j'ai un ViewController qui ensuite charge le TableViewcontroller.
Je viens de voir que la méthode viewWillAppear du ViewController est appelée à chaque fois et celle du TableViewController jamais (ce qui correspond aux infos de la doc Apple).
Donc je fouille de se côté la.
Merci de ton aide
reloadDataOfTableView étant une méthode du controller qui recharge la table.
Cela fonctionne.
donc reloadDataOfTableView essaye de s'appliquer sur le ViewController et pas le TableViewController :S
La méthode de reloaddata ds le view controller trouve la vue du navigationController en cours (avec self.navigationController selectedController ou un truc du genre je n'ai plus le nom en tête), et tu lui renvoies à elle un tableView reloadData.
J'ai enfin réussi en ajoutant dans le viewWillAppear de mon ViewController et en ajoutant la méthode rechargement (qui effectue la mise a jour des données et de la tableView) dans mon TableViewController.
Déjà j'ai mis le viewDidAppear et bon signe quand je fais une trace il me l'affiche bien quand je selectionne le tableView via mon tabBar.
J'ai mis la méthode
dans mon delegate mais j'ai un warning : "UIViewController may not respond to -reloadDataOfAllTableView "
et sur le dernier message de iPatx je comprends pas trop pourquoi il met ça et que peut-être ça méthode rechargement
Cette méthode faisait un reloadData sur la tableView de la classe.
Mais la méthode tabBarController n'est pas appelé car je n'ai pas la trace sur la console.
Manque de réflexe !!
Par contre je comprends pas pourquoi je ne rentre pas dans la méthode du tabBar.
Je n'ai pas suivi la discussion, je ne peux te dire que des banalités :
- Le delegate est-il bien désigné ?
- Il n'y aurait pas multiplication des instances (une dans le xib et une dans le code par exemple) et que cette connexion ne soit pas sur la bonne instance ?
Par contre je vois pas trop comment savoir si le delegate est bien désigné ...
huum ?
Tu as oublié de cité ça
J'ai regarder dans la doc, j'ai l'impression que ça se passe du côté de @interface.
Moi j'ai ça :
J'ai bon sur ce point ? ^^
Je ne peux pas t'aider sans code.
Dans ton cas, il s'agit de recharger la vue associée à un tabBar. Cette vue ne recharge qu'une partie des données et non toute la base pour commencer.
Ce n'est pas Ma méthode mais une méthode delegate de tabBarController qui s'en charge.
Bein par exemple, pour commencer, ça plante où ?
Et dans le ShowDessertSummaryViewController, la fameuse méthode perso reloadAllData fait ceci :
Donc, quand je reviens sur l'onglet correspondant à ShowDessertSummaryViewController, il recharge les données datasource naturellement.
Après, mon datasource doit être bien différent du tien.
Le mien est géré par une classe "parente" dans un protocole dont se servent chaque contrôleur de chaque onglet du tabBar.
Du coup, IB voit même le datasource dessertDataSource à lire/alimenter avec la tableView.
Bon j'ai essayé d'implémenter ça mais ça plante avec ce message :
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[UINavigationController reloadAllData]: unrecognized selector sent to instance 0x121ad0'
Bein t'as pas dû déclaré ta méthode reloadAllData.
J'ai :
puis dans mon JourViewController
.h
.m
Donc oui tu as raison sur le fait que c'est comme si il ne reconnaissait pas la méthode car même le "ok" n'est pas imprimé. Par contre tout est bien déclaré et le compilateur ne m'indique rien à l'encontre de ça .
Ne peux-tu pas reformuler dans un post les données et ta question , de la façon la plus précise possible, Merci ?