2009-06-28 8 views
1

J'ai un viewController personnalisé appelé SourceListViewController, et je l'ajoute dans un UINavigationController, dont la vue est ensuite ajoutée à la fenêtre de l'application iphone. Après avoir transmis le SourceListViewController à UINavigationController, je libère le sourceListViewController. Lorsque je fais cela, l'application planterait après le chargement de la vue sur le téléphone. Quand j'ai commenté la dernière ligne, l'application fonctionne bien. InitWithRootViewController n'est-il pas supposé conserver la copie de sourceListVC?Pourquoi initWithRootViewController ne conserve-t-il pas la classe viewController qui lui est transmise?

Répondre

8

Vous êtes autoreleasing navigationController. Donc si navigationController est autoeleased (ce qui arrivera probablement dans le prochain runloop), il en sera de même pour sourceListVC.

+0

Cela ne signifie pas que le fichier sourceListVC est conservé. Est-ce comme ça, quand vous libérez le NavigationController, tous ses ViewController sont également libérés et la NVC ne conserve pas le contrôleur de vue racine? – karim

Questions connexes