2009-07-10 7 views
1

La méthode addSubview charge-t-elle réellement la vue dans l'application ou non? La raison que je demande est parce que j'ai deux deux vues dans ma demande. Le délégué de l'application ajoute les deux vues en tant que sous-vues, puis affiche l'une des vues à l'avance. Maintenant, j'ai une instruction print dans chacune des méthodes viewDidLoad pour chaque vue. Lorsque j'exécute l'application, le délégué de l'application charge les vues en tant que sous-vues et lorsque chaque vue est chargée, la console affiche les instructions que j'ai placées dans chacune des méthodes viewDidLoad. Est-ce censé faire ceci? ViewDidLoad est en fait une méthode de UIViewController, pas UIView.UIWindow et UIView addSubview Question

Répondre

5

Il est appelé après que la vue soit chargée en mémoire (après votre méthode init, mais avant awakeFromNib). Vous remarquerez que addSubview: prend un UIView en paramètre, donc la vue doit avoir été chargée pour que la vue soit ajoutée à une autre vue. Sinon, vous essayez d'ajouter une vue imaginaire.

En réponse à votre question, oui c'est censé être fait. viewDidLoad est appelé longtemps avant que vous ajoutiez Subview. En fait, si vous supprimez les lignes addSubview:, vous remarquerez qu'il est toujours appelé (parce que vous créez le contrôleur de la vue).

+1

Donc, si j'ai 10 vues ... toutes les 10 sont chargées? Qu'est-il arrivé à "charger uniquement les vues au besoin"? Donc "ajouter" une sous-vue à une fenêtre ... est vraiment juste "montrer"? Où est le code qui est réellement en train de faire * LOAD * cette vue? – Bonnie

0

Ma compréhension est que les vues sont chargées paresseusement. Si votre viewcontroller a 10 vues, elles ne sont pas toutes chargées jusqu'à ce que vous essayiez réellement d'y accéder.

Questions connexes