IPhone - Quelle Voir les méthodes à utiliser contrôleur

voix
3

J'essaie de comprendre ce que la logique devrait entrer dans les différentes méthodes de UIViewController comme viewDidLoad, viewDidAppear, viewWillAppear, ...

La structure de mon application est que j'ai un contrôleur de vue racine qui n'a pas vraiment une vue propre, il a plutôt un contrôleur de vue de l'onglet et d'autres charges de contrôleurs de vue en elle. Mais à l'avenir, il peut avoir à charger d'autres contrôleurs vue au lieu du contrôleur de barre d'onglets en fonction de la logique de l'application.

Ma principale question est, qu'est-ce que les gens l'habitude de mettre dans le viewDidLoad, .... méthodes.

À l'heure actuelle I:

viewDidLoad - configuration du contrôleur de barre d'onglets et définir son point de vue propre à vue du contrôleur de vue

viewDidAppear - vérifier si l'utilisateur a stocké connexion d'info sinon - présent avec connexion si oui, connectez-vous et obtenir des données d'applications pour le premier onglet

J'essaie de comprendre maintenant si ma logique pour la mise en place mon contrôleur de barre d'onglets doit aller dans loadview plutôt que viewDidLoad.

Toute aide est la bienvenue. Les petits exemples sur le web sont grands, mais ils ne vont pas dans les détails sur la façon dont les applications plus importantes devraient être structurées.

Créé 27/08/2009 à 04:20
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
3

Vous ne devriez pas mettre en œuvre à la fois -viewDidLoadet -loadView; ils sont à des fins différentes. Si vous chargez un NIB, vous devez mettre en œuvre -viewDidLoadpour exécuter toutes les fonctions qui doivent être faites après le chargement de la BNI. Câblage du TabBar est - il approprié si vous ne l' avez pas déjà fait dans le NIB.

-loadView devrait être mis en œuvre si vous n'utilisez pas NIB, et devrait construire la vue.

-viewWillAppearest appelé immédiatement avant de venir à l'écran. Ceci est un bon endroit pour mettre en place des observations de notification, mettre à jour vos données basées sur les classes de modèles qui ont changé depuis votre dernière à l'écran, et par ailleurs obtenir votre agir ensemble avant que l'utilisateur vous voit. Vous ne devriez pas effectuer d'animations ici. Vous n'êtes pas à l'écran; vous ne pouvez pas animer. Je vois beaucoup de défauts d'animation en raison de cette erreur. Il fonctionne en quelque sorte, mais il semble bizarre.

-viewDidAppearest appelé une fois que vous venez à l'écran. C'est là que vous faites des animations d'entrée (un glissement modal, par exemple, non pas que vous devriez le faire très souvent, mais je cherchais juste à un code qui a fait).

-viewWillDisappearest appelé juste avant d'aller hors-champ. C'est là que vous pouvez faire des animations en laissant (y compris les cellules déselectionner de Tableview, etc.).

-viewDidDisapparest appelé une fois que vous êtes hors de l'écran (et les animations ont terminé). Abattez les observations ici, libérer de la mémoire si possible, aller dormir mieux que vous pouvez.

Je touche sur la mise en place et au démontage des observations ici. Je vais cela plus en profondeur Voir les contrôleurs et les notifications .

Créé 27/08/2009 à 04:44
source utilisateur

voix
0

viewDidLoadsera appelée une fois par vie de chaque UIViewController« vue s. Vous mettez des choses là - dedans qui doit être mis en place et le travail avant que l'utilisateur commence à interagir avec la vue.

viewDidAppearest appelé à chaque fois que la vue est apparu à l'utilisateur. Il pourrait être appelé plus d'une fois. Un exemple serait l'écran racine d'une application à l' aide d' un UINavigationControllerpour pousser et pop une hiérarchie de vues. Mettez des choses là - bas que vous voudriez fait à chaque fois. Par exemple, vous pouvez cacher la UINavigationBarde l'écran racine, mais le montrer pour tous les sous- écrans, de sorte que vous feriez la cachette de la barre ici.

Par conséquent, vous mettriez votre logique pour la mise en place de votre UITabBarControlleren viewDidLoad, car il doit se faire qu'une seule fois.

En ce qui concerne votre application, est - il une raison pour laquelle vous ne faites pas seulement UITabViewControllerêtre le contrôleur chargé par votre délégué de l' application? Il semble que vous avez un niveau d'indirection dans votre application que vous pouvez ou ne pouvez pas besoin. Il est sans doute préférable de simplifier maintenant et factoriser plus tard si vous avez besoin quelque chose de plus complexe.

Créé 27/08/2009 à 04:31
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more