60 votes

Xcode - Comment connecter XIB à la classe ViewController

Dieu,

Cela semble être une question idiote :)

J'ai d'abord créé mon TestViewController.h et *.m. Ensuite, mon TestView.xib.

Maintenant je dois dire à mon xib : "Oui, veuillez prendre la classe TestViewController comme propriétaire de mon fichier".

J'ouvre mon xib, je vais dans l'inspecteur d'identité de son fileOwner et je choisis sous "Custem Class" TestViewController.

Mais cela ne semble pas suffisant, car lorsque j'ouvre le fichier TestView.xib et que je choisis l'option "Assistent Editor View", le ViewController correspondant doit apparaître dans la partie droite de l'écran partagé - dans mon cas, il s'agit de "TestViewController.h". Mais ce n'est pas le cas !

Est-il nécessaire de lier le xib de quelque manière que ce soit à son viewcontroller en faisant glisser des lignes vers des fichiers comme vous le faites avec les outlets et les actions ?

Merci mogio

94voto

Augustine Points 661

Cliquez pour sélectionner le xib. Maintenant, sélectionnez le propriétaire du fichier. Dans le panneau des attributs sur le côté droit, choisissez le troisième onglet, "Identity Inspector". Il y a un en-tête nommé Classe personnalisée . Donnez-y le nom de votre contrôleur de vue. Après cela, vous pouvez connecter les éléments avec le propriétaire du fichier.

enter image description here

24voto

Ike Points 96

Je pense que j'ai rencontré exactement cette situation lorsque j'ai créé une sous-classe UIViewController mais que j'ai oublié de cocher la case "with .xib for UI". Plus tard, je suis revenu en arrière et j'ai créé le fichier .xib séparément.

Voici une façon plus progressive d'associer votre nouveau UIViewController et .xib.

  1. Sélectionnez le propriétaire du fichier sous Placeholders dans le volet gauche de l'IB. Dans l'inspecteur des propriétés (volet droit de l'IB), sélectionnez le troisième onglet et modifiez "Class" sous "Custom Class" pour qu'il s'agisse du nom de votre nouvelle sous-classe UIViewController.

  2. Ensuite, faites un ctrl-clic ou un clic droit sur le propriétaire du fichier dans le volet de gauche et tracez une ligne jusqu'à votre vue de niveau supérieur dans la partie Objets du volet de gauche. Sélectionnez la sortie "Vue" et le tour est joué.

Vous devriez maintenant être en mesure de configurer d'autres points de vente et actions. Vous êtes prêt à instancier votre contrôleur de vue dans le code et à utiliser initWithNibName et le nom de votre nib pour le charger.

17voto

Hermann Klecker Points 8461

Dans le contrôleur de vue, créez une sortie "vue" (UIView) et marquez-la comme IBOutlet. (Lorsque vous utilisez les valeurs par défaut/les modèles corrects lors de la création des fichiers dans xcode, cette propriété devrait déjà être présente). Dans Interface Builder, créez un lien entre la vue principale et la propriété/outlet de la vue du contrôleur/fichier propriétaire de la vue. Pour avoir une vue d'ensemble : Lorsque vous créez/affectez le contrôleur de vue, vous devez l'initier avec le fichier XIB approprié. C'est à ce moment précis que l'objet contrôleur de vue est lié à la vue qui est générée à partir du fichier XIB.

6voto

HDA Points 2590

1) Tout d'abord, comme tout le monde l'a dit, donnez le nom du contrôleur de vue dans la classe du propriétaire du fichier.

2) Sélectionnez le propriétaire du fichier, faites glisser une ligne à partir de là pour voir ce qui relie les deux.

3) Créer une instance du contrôleur de vue et l'ajouter à la fenêtre pour que l'extrait de code soit le suivant,

MyViewController *controller = [[MyViewController alloc] initWithNibName:@"MyView" bundle:nil];

4) Enfin, ajoutez la vue du contrôleur de vue en tant que sous-vue de window.TO pour faire cela, le codage est le suivant,

[window addSubview:[controller view]];

Essayez le snippet suivant sur appdelegate

- (void)applicationDidFinishLaunching:(UIApplication *)application {    

    // Override point for customization after application launch
    [window makeKeyAndVisible];

    MyViewController *controller = [[MyViewController alloc] initWithNibName:@"MyView" bundle:nil];
    [window addSubview:[controller view]];
 }

5) Utilisez l'extrait suivant pour maximiser la taille de l'affichage à la fenêtre de sorte qu'il n'y ait pas d'espace.

[controller.view setFrame:[[UIScreen mainScreen] applicationFrame]];

Maintenant vous verrez votre contrôleur de vue comme vous l'attendiez...

J'espère que cela vous aidera....

0voto

Abhishek Points 1700

Oui, vous devez ajouter la propriété de la vue aux propriétaires de fichiers de ce contrôleur de vue à partir du constructeur d'interface :

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X