IBOutlet et IBAction

Quel est le but d’utiliser IBAction et IBOutlet dans le codage Objective-C pour iPhone, cela fait-il une différence si je ne les utilise pas?

IBAction et IBOutlet sont des macros définies pour désigner les variables et les méthodes auxquelles Interface Builder peut faire référence.

IBAction résout à void et IBOutlet résout à rien, mais ils signifient au générateur Xcode et Interface que ces variables et méthodes peuvent être utilisées dans le générateur Interface pour lier les éléments de l’interface utilisateur à votre code.

Si vous n’utilisez pas du tout Interface Builder, vous n’en avez pas besoin dans votre code, mais si vous voulez l’utiliser, vous devez spécifier IBAction pour les méthodes qui seront utilisées dans IB et IBOutlet pour les objects qui seront utilisés dans IB.

La manière traditionnelle de marquer une méthode pour qu’elle apparaisse dans Interface Builder, et vous pouvez y faire glisser une connexion, a consisté à rendre le type de retour de la méthode IBAction. Cependant, si votre méthode est annulée, IBAction est # défini comme étant vide et fournit un argument (id), la méthode est toujours visible. Cela fournit une flexibilité supplémentaire, al

Ces trois éléments sont visibles depuis Interface Builder:

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

Voir le Guide de l’utilisateur d’Interface Builder pour plus de détails, en particulier la section Intégration Xcode.

Vous devez utiliser IBOutlet et IBAction si vous utilisez le générateur d’interface (d’où le préfixe IB) pour vos composants d’interface graphique. IBOutlet est nécessaire pour associer des propriétés dans votre application avec des composants dans IB, et IBAction permet d’associer vos méthodes à des actions dans IB.

Par exemple, supposons que vous définissiez un bouton et une étiquette dans IB. Pour modifier dynamicment la valeur de l’étiquette en appuyant sur le bouton, vous définissez une action et une propriété similaires à:

 UILabel IBOutlet *myLabel; -(IBAction) pushme; 

Ensuite, dans IB, connectez myLabel avec l’étiquette et connectez la méthode pushme avec le bouton. Vous devez avoir IBAction et IBOutlet pour que ces connexions existent dans IB.

Interface Builder les utilise pour déterminer quels membres et messages peuvent être «connectés» aux commandes d’interface que vous utilisez dans votre fenêtre / vue.

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

IBAction et IBOutlets sont utilisés pour connecter votre interface dans Interface Builder avec votre contrôleur. Si vous n’utilisiez pas Interface Builder et ne construisiez pas complètement votre interface en code, vous pourriez créer un programme sans les utiliser. Mais en réalité, la plupart d’entre nous utilisent Interface Builder. Une fois que vous voulez obtenir une certaine interactivité dans votre interface, vous devez utiliser IBActions et IBoutlets.

Une sortie est un lien entre le code et l’interface utilisateur. Si vous souhaitez afficher ou masquer un élément d’interface utilisateur, si vous souhaitez obtenir le texte d’un champ de texte ou activer ou désactiver un élément (ou une centaine d’autres choses), vous devez définir un sharepoint sortie de cet object dans les sources. à travers l’object d’interface à l’élément d’interface utilisateur. Après cela, vous pouvez utiliser le sharepoint vente comme toute autre variable dans votre codage.

IBAction – une méthode spéciale déclenchée par des objects d’interface utilisateur. Interface Builder les reconnaît.

 @interface Controller { IBOutlet id textField; // links to TextField UI object } - (IBAction)doAction:(id)sender; // eg called when button pushed 

Pour plus d’informations, veuillez consulter Apple Docs

Pensez au diagramme tout en regardant le codage de la valeur clé, pensant que cela pourrait aider quelqu’un. Cela aide à comprendre ce qu’est IBOutlet.

En examinant le stream, on pouvait voir que IBOutlets n’était là que pour faire correspondre le nom de la propriété à un nom de contrôle dans le fichier Nib.

Comment le fichier nib est chargé, capture d'écran du livre en ligne de Matt pour iOS6

Lorsque vous utilisez Interface Builder, vous pouvez utiliser Inspecteur des connexions pour configurer les événements avec des gestionnaires d’événements. Les gestionnaires d’événements sont supposés être les fonctions dotées du modificateur IBAction. Une vue peut être liée à la référence pour le même type et avec le modificateur IBOutlet.