Quelle est la différence entre et
?
Réponses
Trop de publicités?En général, c'est ce que je fais:
1) ViewDidLoad - Chaque fois que je suis à ajouter des contrôles à un point de vue qui devrait apparaître avec la vue, tout de suite, je l'ai mis dans la méthode ViewDidLoad. Fondamentalement, cette méthode est appelée à chaque fois que le point de vue a été chargé en mémoire. Ainsi, par exemple, si mon point de vue est un formulaire avec 3 étiquettes, je voudrais ajouter les étiquettes ici, la vue n'existe pas sans les formes.
2) ViewWillAppear:- je utiliser ViewWillAppear habituellement juste pour mettre à jour les données sur le formulaire. Ainsi, pour l'exemple ci-dessus, je voudrais l'utiliser pour charger les données à partir de mon domaine dans le formulaire. Création de UIViews est assez cher, et il faut éviter autant que possible de faire ce que sur le ViewWillAppear méthode, parce que quand cela se appelle, cela signifie que l'iPhone est déjà prêt à montrer au UIView à l'utilisateur, et quelque chose de lourd à vous de le faire ici, aura un impact sur les performances dans un très visibles (comme les animations de retard, etc).
3) ViewDidAppear: Enfin, j'utilise le ViewDidAppear pour commencer de nouveaux threads pour les choses qui peut prendre beaucoup de temps à s'exécuter, comme par exemple faire un webservice appeler pour obtenir des données supplémentaires pour la forme ci-dessus.La bonne chose est que parce que la vue existe déjà et qui est affiché à l'utilisateur, vous pouvez afficher un joli message "Waiting" de l'utilisateur pendant que vous obtenir les données.
viewDidLoad ===>>> Mettre votre code d'initialisation ici. Ne mettez pas de données dynamique qui peut évoluer au cours du cycle de vie vue. Donc, si vous êtes en tirant les données de base les données que vous ne voulez pas le faire ici si cela pourrait changer au cours de la vie de la vue. Par exemple: disons que vous avez un onglet contrôleur. Vous passez de à tab2 tab1 et changer quelque chose sur le modèle de tab2. Si vous revenez à tab1 et votre modèle de code a été fait dans le viewDidLoad ce ne serait pas mis à jour (en supposant que vous n'êtes pas à l'aide de KVO ou NSFetchedResultsController, etc.).
viewWillAppear ===>>> c'est Ce qui est appelée à chaque fois que la vue est sur le point d'apparaître, à savoir si ou non le point de vue est déjà en mémoire. Mettre votre code dynamique ici, tels que le modèle logique.
viewDidAppear ===>>> Mettre opérations coûteuses ici que vous ne voulez faire si vous êtes certain que le point de vue est à l'écran, tels que les appels réseau.
Avis: si votre application est backgrounded et revient au premier plan vous avez besoin pour gérer cette aide NSNotificationCenter. J'ai écrit le code pour que, dans les commentaires ci-dessous. Vous pourriez penser viewWillAppear/viewDidAppear le feu. Placez un point d'arrêt, il y et de le tester. Il n'a pas d'incendie. Donc, si quelque chose a changé pour votre application alors qu'il était à l'arrière, vous aurez besoin de mise à jour à l'aide de notifications.