2010-08-04 9 views
0

J'Openning une fenêtre modale avec le SDK iPad.l'exécution de code après ouverture de la fenêtre modale ipad

[parent presentModalViewController:myPopup animated:YES]; 

La vue MyPopup a beaucoup de code du bâtiment dans sa méthode viewDidLoad et donc il y a une pause de l'article 3 ou 4 tandis que la vue de MyPopup est construit avant l'animation pop-up démarre. Ce que je veux faire est seulement de construire les bases de la vue myPopup puis de faire tous les appels coredata et de construire le reste de la vue seulement après que le popup ait été animé sur l'écran.

Puis-je mettre un sélecteur ou quelque chose sur l'animation presentModalViewContainer donc je peux appeler une méthode pour faire encore la construction seulement après l'animation est terminée? J'ai essayé viewDidAppear et viewWillAppear et ceux-ci ne sont jamais appelés pour un popup modal (j'ai debugged) donc rien n'est construit!

-(void) viewWillAppear:(BOOL)animated{ 
[super viewWillAppear:YES]; 
[self buildView]; 

Merci beaucoup.

Répondre

0

Essayez de mettre votre code du bâtiment en -viewDidAppear: au lieu de fait la charge.

Le bâtiment devrait alors avoir lieu après la vue est animée à l'écran, cependant, l'interface utilisateur sera toujours se bloquer pendant que votre code du bâtiment est en cours d'exécution, sauf si vous déplacez hors du thread principal.

Il y a un certain nombre d'options pour ce faire: filetage, NSOperation, blocs, etc.

+0

J'ai essayé - voir la question :( –

+0

Thannks édité :). J'ai utilisé le multithreading via NSOperation. Suivi cette solution ici: http: //icodeblog.com/2010/03/04/iphone-coding-turbo-charging-your-apps-with-nsoperation/. –