2010-12-01 7 views
0

Mon contrôleur de navigation est organisé de cette façon:détruire une vue lorsque le bouton retour est pressé

FirstViewController -> SecondViewController -> ThirdViewController

dans le premier que je fais une recherche sur le web et j'afficher le résultat dans UITableView lorsque je sélectionne une cellule je pousse à la seconde où je fais une autre recherche basée sur la touche précédemment pressée et j'affiche quelques informations et un bouton pour "plus d'infos" lorsque j'appuie sur le bouton je pousse à la troisième vue et cela fonctionne bien ...

Le problème est que n J'appuie deux fois sur le bouton retour pour faire une autre recherche: quand j'arrive à la troisième vue j'affiche à chaque fois les informations sur la première recherche!

c'est parce que je fais l'affichage d'informations dans loadView et ce n'est appelé que la première fois, non?

Comment faire?

merci!

Répondre

0

En effet viewDidShow est appelé après que la vue a été chargée et créée à partir du fichier NIB. Cela signifie que vous ne devez utiliser cette méthode que pour effectuer des tâches d'initialisation.

Ajouter une nouvelle méthode et l'appeler à chaque fois que vous avez de nouveaux résultats:

- (void) updateAndShowResults 
{ 
    // Code to update third view goes here 
    // and is always called whenever some new results are available 
} 

Vous appelleriez depuis le premier ou le deuxième contrôleur de vue comme celui-ci:

[thirdView updateAndShowResults]; 

espoir qui aide. S'il vous plaît marquer la meilleure réponse en cliquant sur le "√" sur la gauche! Merci.

+0

oui! Je vous remercie! – Janky

-1

Vous pouvez nettoyer le ThirdViewController dans viewdidunload.

+0

Cela n'a aucun sens si vous souhaitez réutiliser la vue pour plusieurs recherches. – BastiBen

Questions connexes