Dans le chapitre précédent, nous avons pu connecter notre label et notre code. Désormais, nous allons connecter une action sur le bouton "ET MOI ?" au code. Ainsi, dès qu'il sera appuyé, nous pourrons faire un peu de logique.
Il va y avoir de l'action !
Une action ?
Commençons par définir ce qu'est une action au sens de Xcode. En fait, une action c'est comme un outlet. C'est une connexion entre un élément de l'interface et le code. Mais il y a un paramètre en plus : l'évènement.
Une action, c'est une connexion entre un élément de l'interface et le code, associée à un évènement.
Et euh… Concrètement ?
Prenons par exemple notre bouton "ET MOI ?". Nous souhaitons faire quelque chose lorsque l'utilisateur appuie dessus. L'évènement c'est donc : l'appui sur le bouton. On pourrait en choisir plein d'autres, comme l'appui en dehors du bouton, l'appui long, l'appui avec 2 doigts, le glissé du doigt dans le bouton, etc.
Nous avons donc plein d'évènements possibles. Donc lorsque l'on crée une action, on doit choisir de quel élément elle part (ici notre bouton) et à quel évènement elle se rapporte (ici l'appui sur le bouton).
Assez bavardé, place à l'action !
Pour créer une action, il faut répéter la même opération que pour l'outlet :
Vous vous mettez en vue Assistant (storyboard à gauche, code à droite).
Vous laissez la touche ctrl enfoncée.
Vous glissez-déposez depuis le bouton "ET MOI ?" jusque dans le code.
En lâchant, vous allez retrouver la pop-up suivante :
Regardons-la un peu en détail :
Connection : le type de connexion que vous souhaitez créer. Ici, on choisit bien sûr Action.
Object : comme au chapitre précédent, l'objet qui reçoit la connexion : notre contrôleur.
Name : le nom de notre action. Ici, je l'appelle
changeQuote
car, avec cette action, nous allons modifier la citation.Type : le type de l'élément d'interface concerné par la connexion. Ici, nous avons un bouton (UIButton). Mais vous pouvez laisser Any car nous n'avons pas besoin de ce paramètre.
Event : le type d'évènement que nous allons associer à la connexion. Par défaut, Xcode propose le plus pertinent, donc vous aurez rarement à modifier ce paramètre. Ici, par exemple, nous avons
Touch Up Inside
qui signifie précisément un toucher vers le haut à l'intérieur du bouton, c'est-à-dire au moment où le doigt quitte l'écran.Arguments : je vous invite à passer ce paramètre à
None
. Nous restons en sous-marin pour la question des arguments ;).
Vous pouvez maintenant cliquez sur connect et Xcode génère automatiquement le code suivant :
@IBAction func changeQuote() {
}
En résumé
Une action est une connexion entre un élément de l'interface et le code, associée à un évènement.
Pour créer une action, passez en mode assistant d'abord, puis maintenez le bouton ctrl enfoncé et glissez-déposez votre élément d’interface jusque dans le code et choisissez le type de Connexion
Action
.
Xcode nous a donc généré le code pour notre action. Et pour expliquer ce code, nous allons passer à une autre notion essentielle de Swift : les fonctions.