web-dev-qa-db-fra.com

Xcode - Comment connecter XIB à ViewController Class

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 en tant que propriétaire de mon fichier".

J'ouvre mon xib, allez à l'inspecteur d'identité de son fileOwner et choisissez sous "Classe personnalisée" TestViewController.

Mais cela semble insuffisant - comme lorsque j'ouvre TestView.xib, puis que je choisis la "Vue de l'éditeur assistent", le ViewController correspondant doit apparaître sur la partie droite de l'écran partagé - dans mon cas, le "TestViewController.h" . Mais ça ne marche pas!

Est-il nécessaire de lier de quelque façon le xib à son contrôleur de vue en faisant glisser des lignes vers des fichiers comme vous le faites avec des sorties et des actions?

58
mogio

Cliquez pour sélectionner le xib. Maintenant, sélectionnez le propriétaire du fichier. Dans le panneau d'attributs situé à droite, choisissez le troisième onglet "Inspecteur d'identité". Il existe un en-tête nommé Custom Class. Donnez le nom de votre contrôleur de vue ici. Ensuite, vous pouvez connecter les éléments au propriétaire du fichier.

enter image description here

90
Augustine

Je pense que je me suis heurté exactement à cette situation lorsque j'ai créé une sous-classe UIViewController, mais j'ai oublié de vérifier "avec .xib for UI" lorsque je l'ai fait. Plus tard, je suis revenu et j'ai créé le .xib séparément.

Voici une méthode pas à pas pour associer vos nouveaux UIViewController et .xib.

  1. Sélectionnez Propriétaire du fichier sous Espaces réservés dans le volet gauche de IB. Dans l'inspecteur des propriétés (volet de droite de IB), sélectionnez le troisième onglet et modifiez "Classe" sous "Classe personnalisée" pour qu'il s'agisse du nom de votre nouvelle sous-classe UIViewController.

  2. Ensuite, cliquez en maintenant la touche Ctrl enfoncée ou cliquez avec le bouton droit de la souris sur le propriétaire du fichier dans le volet de gauche et tracez une ligne dans la vue de niveau supérieur dans la partie Objets du volet de gauche. Sélectionnez la sortie "view" et vous avez terminé.

Vous devriez maintenant pouvoir configurer d’autres prises et actions. Vous êtes prêt à instancier votre contrôleur de vue dans le code et à utiliser initWithNibName et votre nom de nib pour le charger.

19
Ike

Dans le contrôleur de vue, créez une sortie "vue" (UIView) et marquez-la en tant que IBOutlet. (Lorsque vous utilisez les modèles/modèles par défaut lors de la création des fichiers dans xcode, cette propriété doit déjà s'y trouver.) Dans Interface Builder, créez un lien entre la vue principale et la propriété/le point de vue du propriétaire du contrôleur/du fichier. Juste pour une image complète: lors de la création/l’allocation du contrôleur de vue, vous devez l’initialiser avec le fichier XIB approprié. C'est le moment même où l'objet du contrôleur de vue est lié à la vue générée à partir du fichier XIB.

17
Hermann Klecker

1) Tout d’abord, comme chacun 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 cela connecte les deux

3) Créez une instance du contrôleur de vue et ajoutez-la à la fenêtre pour que l’extrait de code soit comme suit,

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

4) Enfin, ajoutez la vue du contrôleur de vue comme sous-vue à window.TO pour que le codage soit comme suit,

[window addSubview:[controller view]];

Essayez l'extrait 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 de code suivant pour maximiser la taille de la vue dans la fenêtre afin qu'aucun gape n'apparaisse

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

Vous verrez maintenant votre contrôleur de vue comme vous le souhaitiez ...

J'espère que ça aide....

6
Durai Amuthan.H

oui, vous devez ajouter la propriété view aux propriétaires de fichiers de ce contrôleur de vue à partir du générateur d'interface:

0
Abhishek

choisissez votre propriétaire de fichier, accédez à la fenêtre de l'inspecteur d'identité et modifiez le nom de la classe du propriétaire du fichier en votre fichier .h de vue, qui se connectera.

0
Bittu