2010-10-04 38 views
0

J'ai une autre question. J'ai ce NavigationController, qui a un délégué: MainViewController. Dans ce contrôleur de navigation, il y a une vue de table, qui a le même délégué: MainViewController. Chaque fois que j'appuie sur une ligne de la table, une vue apparaît: itemViewController.Suppression de toutes les traces d'un UIView

Maintenant, tout cela fonctionne vraiment bien. Mais quand je repasse, je veux que l'itemViewController + sa vue soit complètement oublié, il doit être détruit à 100%. Comme il n'a jamais existé.

qui a un arrière-plan logique: Chaque fois que je suis fait avec la vue, je repasse. Et quand je veux le voir à nouveau, je veux qu'il soit rechargé, je ne veux pas qu'une vieille référence à la vue soit utilisée, parce que les données qu'il montre changent tout le temps. Donc, dans ma situation en ce moment, je dois relancer l'application pour voir les nouvelles données dans la vue.

Ce qui, je trouve, vraiment frustrant. Alors, aidez-moi, comment puis-je m'assurer que cette vue est supprimée et rechargée complètement quand je clique dessus à nouveau depuis la vue de la table?

Répondre

1

Dépend de la façon dont vous faites référence à itemViewController.

En général, [itemViewController release]; va supprimer la référence au contrôleur de vue.

Le signifie que la prochaine fois que vous avez besoin du itemViewController, vous devrez recréer à partir de zéro (par exemple [[itemViewController alloc] initWithNib: . . . . ])

Une autre option que vous pourriez envisager serait la mise en place des propriétés pour l'itemViewController et simplement garder la référence autour et la mise à jour des propriétés avant de l'afficher.

Difficile de donner une réponse définitive sans voir votre code.