167 votes

IBOutlet et IBAction

Quel est le but de l’utilisation de IBAction et IBOutlet en Objective-C codant pour l’iPhone, cela fait-il une différence si je ne les utilise pas ?

215voto

Jasarien Points 35353

IBAction et IBOutlet sont des macros définies pour désigner des variables et des méthodes qui peuvent être mentionnés dans Interface Builder.

IBAction résout void et IBOutlet résout rien, mais ils signifient pour Xcode et Interface builder que ces variables et méthodes peuvent être utilisées dans Interface builder pour lier les éléments de l'INTERFACE utilisateur de votre code.

Si vous n'allez pas être en utilisant l'Interface Builder, vous n'en avez pas besoin dans votre code, mais si vous allez l'utiliser, vous devez spécifier IBAction pour les méthodes qui seront utilisées dans l'IB et l' IBOutlet pour les objets qui seront utilisés dans l'IB.

38voto

Michael Rogers Points 699

La manière traditionnelle de drapeau d'une méthode afin qu'elle s'affiche dans Interface Builder, et vous pouvez faire glisser une connexion à elle, a été de faire de la méthode type de retour IBAction. Cependant, si vous faites votre méthode void (IBAction est #define avais nulle), et de fournir une identification (id) de l'argument, la méthode est encore visible. Cela offre plus de flexibilité, vous al

Tous les 3 de ces sont visibles à partir de l'Interface Builder:

-(void) someMethod1:(id) sender; 
-(IBAction) someMethod2; 
-(IBAction) someMethod3:(id) sender;

Voir Apple Interface Builder Guide de l'Utilisateur pour plus de détails, notamment la section intitulée Xcode Intégration.

32voto

ennuikiller Points 28005

Vous avez besoin d'utiliser IBOutlet et IBAction si vous utilisez l'interface builder (d'où l'IB préfixe) pour vos composants GUI. IBOutlet est nécessaire d'associer les propriétés de votre application avec les composants de l'IB, et IBAction est utilisé pour permettre à vos méthodes pour être associés à des mesures de l'IB.

Par exemple, supposons que vous définissez un bouton et étiquette de l'IB. Pour modifier dynamiquement la valeur de l'étiquette en appuyant sur le bouton, vous allez définir une action et de la propriété dans votre application similaire à:

UILabel IBOutlet *myLabel;
-(IBAction) pushme;

Puis au bureau de l'IB vous connecter myLabel avec l'étiquette et de connecter le pushme méthode avec le bouton. Vous avez besoin IBAction et IBOutlet pour ces connexions existent dans de l'IB.

7voto

KazR Points 746

Interface Builder utilise pour déterminer quels membres et messages peuvent être « branchés » jusqu'à les contrôles de l’interface que vous utilisez dans votre fenêtre/vue.

IBOutlet et IBAction sont purement là comme marqueurs cette Interface Builder cherche lorsqu’il analyse votre code au moment du design, ils n’ont aucun effet sur le code généré par le compilateur.

3voto

Yannick Compernol Points 2875

IBAction et IBOutlets sont utilisés pour raccorder votre interface faite dans Interface Builder avec votre contrôleur. Si vous ne serait pas utiliser Interface Builder et construire votre interface complètement dans le code, vous pourriez faire un programme sans les utiliser. Mais en réalité, la plupart d'entre nous utilise Interface Builder, une fois que vous voulez obtenir une interactivité va dans votre interface, vous devrez utiliser IBActions et IBoutlets.

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