2010-04-15 8 views
18

J'ai utilisé UIViewController s et initWithNibName avec beaucoup de succès, essentiellement en les utilisant comme un moyen pratique de concevoir la vue avec Interface Builder. Malheureusement, je l'ai construit une hiérarchie de vues avant de remarquer cette ligne dans la documentation UIViewController:Comment charger un UIView à partir d'un NIB?

Note: Vous ne devriez pas utiliser la vue contrôleurs pour gérer les vues qui remplissent seulement une partie de leur fenêtre

Ma question est la suivante: Avoir un NIB très simple qui a seulement un UIView en plus du premier répondeur et de l'objet propriétaire par défaut, quelle est la manière la plus simple de charger le UIView dans mon code?

Je n'ai pas réussi à obtenir le loadNibNamed:owner:options: à ce stade, mais je suppose que la réponse l'impliquera d'une manière ou d'une autre.

Répondre

29

Oui, appelez

[[NSBundle mainBundle] loadNibNamed:@"viewNib" owner:self options:nil]; 

Vous faites normalement ceci du contrôleur de vue que vous avez défini comme propriétaire du fichier dans le NIB. De cette façon, vous pouvez déclarer une sortie pour la vue dans le contrôleur de vue qui sera automatiquement connecté lorsque vous chargez le fichier NIB. Vous n'avez même pas besoin de travailler avec la valeur de retour de la méthode dans ce cas.

+0

Merci, il me manquait la partie 'mainBundle' – Winder

+1

Salut, une question rapide: cette approche gère-t-elle le cas d'avoir une classe CustomView? Si le propriétaire du fichier est le contrôleur de vue à partir duquel la vue est initialisée, comment est-ce que je rattache tous les éléments de la plume (comme MyLabel) aux objets IBOutlets de la classe CustomView? – aneuryzm

+0

Juste la classe de la vue à votre classe personnalisée dans IB, puis connectez les prises. Pas de différence avec ce que tu ferais toujours. –

Questions connexes