3 votes

Ajouter UIView sur UIViewController

Je veux ajouter une vue personnalisée à un contrôleur de vue, cette vue personnalisée a été créée avec xib et est séparée du contrôleur de vue,

quelqu'un sait-il comment ajouter une uiview avec un xib dans un uiviewcontroller ?

Merci d'avance

3voto

zoul Points 51637

Vous voulez dire une vue supplémentaire, pas la vue principale du contrôleur ? Dans ce cas, vous pouvez déclarer une propriété pour la vue et charger la NIB à la main :

@interface Controller {}
@property(retain) IBOutlet UIView *extraView;
@end

…

- (void) viewDidLoad // or anywhere else
{
    [[NSBundle mainBundle] loadNibNamed:@"extras" owner:self options:nil];
    NSAssert(extraView != nil, @"The extra view failed to load.");
    [[self view] addSubview:extraView];
}

Cela suppose que vous avez défini l'option Controller en tant que propriétaire du fichier dans le Générateur d'interface et vous liez la vue à l'interface de l'utilisateur. extraView sortie. Notez également qu'il peut exister des solutions plus élégantes, comme l'insertion de la vue supplémentaire dans la NIB principale de votre contrôleur ; cela dépend de la situation.

1voto

zoul Points 51637

Il semble que vous souhaitiez le scénario le plus courant : charger simplement un fichier personnalisé initialisé. UIView dans un contrôleur.

  1. Créez un nouveau XIB, appelé "View XIB" dans l'assistant de nouveau fichier de Xcode.
  2. Dans le générateur d'interface, sélectionnez l'objet File Owner et dans l'onglet Object Identity de l'inspecteur d'objets (Cmd-4), entrez Controller (ou le nom de votre classe de contrôleur) dans le champ Classe.
  3. Faites de même avec la vue, en entrant le nom de votre classe de vue.
  4. Ctrl+drag du propriétaire du fichier à la vue, vous devriez être en mesure de connecter la vue à la sortie de vue définie sur votre contrôleur.
  5. Sauvegardez, disons Controller.xib .
  6. Dans votre code, initialisez le contrôleur en utilisant initWithNibName:@"Controller" bundle:nil . Le code d'initialisation doit charger l'interface pour vous et définir la propriété view à la vue décompressée du fichier d'interface.

Consultez un tutoriel sur Interface Builder. IB est un outil très intéressant et il est bon de s'y familiariser.

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