2009-10-10 7 views
0

J'ai une application composée de plusieurs onglets gérés par la classe dérivée de UITabBarController (la seule raison pour laquelle j'ai sous-classé UITabBarConteroller est de gérer l'événement shake pour toutes les vues). 3 vues proviennent de la classe UIViewContentroller sous-classée, une vue est UINavigationController qui montre une table. Dans chaque contrôleur simple j'ai, y compris mon sous-classé l'un, j'ai ceci:Gestion de la mémoire UITabViewController

  • (void) {didReceiveMemoryWarning // Libère la vue si elle ne dispose pas d'un superview. [super didReceiveMemoryWarning];

L'application fonctionne très bien. Ma question est de savoir comment l'implémentation par défaut de UITabBarController gère le déchargement automatique des vues dans des conditions de faible mémoire.

Seul le contrôleur dérivé de UINavigationController se décharge automatiquement (voir viewDidUnload appelé). viewDidUnload n'est pas appelé pour les autres contrôleurs de vue gérés par UITabBarController.

Pourquoi?

Merci

Répondre

0

viewDidUnload est appelée lorsque la vue du contrôleur de votre vue est supprimé et désallouée, et cela se produit après que le VC reçoit didReceiveMemoryWarning. Vérifiez que cette méthode est appelée en premier. Si ce n'est pas appelé, il se passe quelque chose d'autre, mais s'il est appelé, votre vue est peut-être trop conservée ou n'est pas supprimée correctement.

Questions connexes