Question

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?

Était-ce utile?

La solution

IBAction et IBOutlet sont des macros définies pour désigner des variables et des méthodes pouvant être référencées dans Interface Builder.

IBAction résout en void et IBOutlet ne résout rien, mais indique au constructeur Xcode et Interface que ces variables et méthodes peuvent être utilisées dans le générateur Interface pour lier des éléments d'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 allez l'utiliser, vous devez spécifier IBAction . pour les méthodes qui seront utilisées dans IB et IBOutlet pour les objets qui seront utilisés dans IB.

Autres conseils

La méthode traditionnelle pour marquer une méthode afin qu'elle apparaisse dans Interface Builder, et que vous puissiez y faire glisser une connexion, consiste à renvoyer la méthode au type IBAction. Toutefois, si vous annulez votre méthode (IBAction est # définie comme étant vide) et fournissez un argument (id), la méthode est toujours visible. Cela offre une flexibilité supplémentaire, al

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

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

Consultez le Guide de l'utilisateur Interface Builder d’Apple 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 à des composants dans IB, et IBAction est utilisé pour permettre à vos méthodes d'être associées à des actions dans IB.

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

UILabel IBOutlet *myLabel;
-(IBAction) pushme;

Ensuite, dans IB, vous devez connecter myLabel à l’étiquette et connecter la méthode pushme au bouton. Vous devez disposer d’IBAction et d’IBOutlet pour que ces connexions existent dans IB.

Interface Builder les utilise pour déterminer quels membres et quels messages peuvent être "connectés" aux contrôles d'interface que vous utilisez dans votre fenêtre / vue.

IBOutlet et IBAction sont uniquement présents en tant que marqueurs que Interface Builder recherche lorsqu’il analyse votre code lors de la conception, ils n’ont aucune incidence sur le code généré par le compilateur.

Une prise est un lien entre le code et l'interface utilisateur. Si vous souhaitez afficher ou masquer un élément de l'interface utilisateur, 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 point de vente de cet objet dans les sources et lier ce point de vente. via l’interface objet de l’interface utilisateur. Après cela, vous pourrez utiliser la sortie comme n'importe quelle autre variable de votre code.

IBAction - une méthode spéciale déclenchée par des objets d'interface utilisateur. Interface Builder les reconnaît.

@interface Controller
{
  IBOutlet id textField; // links to TextField UI object
}

- (IBAction)doAction:(id)sender; // e.g. called when button pushed

Pour plus d'informations, consultez le site Docs Apple.

Parcouru le diagramme en regardant le codage valeur-clé, pensant que cela pourrait aider quelqu'un. Cela aide à comprendre ce qu'est IBOutlet.

En examinant le flux, vous pouvez voir que les IBOutlets ne sont là que pour faire correspondre le nom de la propriété avec 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

IBAction et IBOutlets sont utilisés pour connecter votre interface créée dans Interface Builder à votre contrôleur. Si vous ne voulez pas utiliser Interface Builder et construire votre interface entièrement en code, vous pouvez créer un programme sans les utiliser. Mais en réalité, la plupart d’entre nous utilisons Interface Builder. Une fois que vous souhaitez obtenir une certaine interactivité dans votre interface, vous devrez utiliser IBActions et IBoutlets.

lorsque vous utilisez Interface Builder, vous pouvez utiliser l'inspecteur de connexions pour configurer les événements à l'aide de gestionnaires d'événements. Ces derniers sont censés être les fonctions associées au modificateur IBAction. Une vue peut être liée à la référence du même type et au modificateur IBOutlet.

IBOutlet

  • Il s'agit d'une propriété .
  • Lorsque le fichier nib (IB) est chargé, il fait partie des données encapsulées qui se connectent à une variable d'instance.
  • Chaque connexion est désarchivée et rétablie.

IBAction

  • Attribut indique que la méthode est une action à laquelle vous pouvez vous connecter à partir de votre storyboard dans Interface Builder.

@ - Modèle dynamique IB - Interface Builder

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top