2010-06-07 18 views
2

quand je charge mon viewController j'ai utilisé la méthode "viewDidLoad" pour init mon affichage, mais cela prend beaucoup de temps pour faire apparaître la vue .J'ai eu l'idée d'utiliser la méthode "viewDidAppear" pour accélérer l'affichage de ma vue des informations sur ma vue sont maintenant chargées dans la mémoire à chaque fois que je pousse ma vue (ce qui est normal) ou que j'y touche (et il y a mon problème) Avez-vous une idée?avec "viewDidLoad" mon viewController prend beaucoup de temps à apparaître!

Répondre

0

Créez une tâche en arrière-plan qui est démarrée dans viewDidLoad et met à jour l'interface graphique uniquement lorsqu'elle est terminée. Cela devrait au moins vous permettre d'afficher l'interface graphique, mais éventuellement sans données valides.

+0

c'est ce que j'ai fait mais la vue prend fiew secondes (3,4) pour apparaître (j'ai créé un fil pour analyser un fichier xml) –

0

Selon le View Controller Programming Guide, vous êtes censé créer votre point de vue dans la méthode loadview:

Si vous préférez créer des vues par programmation, au lieu d'utiliser un fichier nib, vous le faites à partir de loadview du contrôleur de votre vue méthode. Vous devez remplacer cette méthode si vous envisagez de créer vos vues par programme.

Peut-être que vous devez créer votre point de vue dans la méthode loadview puis charger des données supplémentaires dans le viewDidLoad comme expliqué dans Understanding the View Management Cycle, en utilisant une tâche de fond comme suggéré par willcodejavaforfood si nécessaire.

+0

je vais essayer , que vous –

+0

je l'ai essayé mais ça n'a rien changé –

0

je l'ai fait avec la méthode « ViewDidAppear: animation » et le problème des données de chargement pour chaque aspect que je rencontre avec un test sur le haut de la mehod:

if(data==nil){/*i do ...*/} 

et pour les données me était un tableau sur lequel j'écris en chargeant la vue