Vidéo: 10 questions clés pour son projet d’application mobile - #ECOMGUEST - Market Academy & Synertic 2024
L'une des exigences de l'interface utilisateur d'une application iOS est de pouvoir gérer les situations dans lesquelles vous souhaitez connecter un bouton à votre code de sorte qu'un utilisateur clique sur le bouton. Cette exigence implique l'utilisation du modèle Target-Action, , qui est l'un des principaux modèles de conception de la programmation iOS.
Vous utilisez le modèle Cible-Action pour indiquer à votre application qu'elle doit faire quelque chose lorsque vous y êtes invité. Un utilisateur peut appuyer sur un bouton ou entrer du texte, par exemple, et l'application doit répondre d'une manière ou d'une autre. Le contrôle envoie un message (le message d'action) que vous spécifiez à la cible (l'objet récepteur, qui est généralement un objet contrôleur de vue) que vous avez sélectionné pour gérer cette action particulière.
Lorsqu'un utilisateur agit sur le contrôle en appuyant sur un bouton, l'iPhone ou l'iPad génère un événement. L'événement déclenchant un message d'action particulier peut être n'importe quoi, tout comme l'objet envoyant le message peut être n'importe quel objet. Un objet de reconnaissance de geste peut envoyer un message d'action à un autre objet lorsqu'il reconnaît son geste. Cependant, le modèle Cible-Action est généralement trouvé avec des contrôles tels que les boutons et les curseurs.
L'événement en tant que tel ne vous en dit probablement pas grand-chose, mais Target-Action fournit un moyen d'envoyer une instruction spécifique à l'application à l'objet approprié.
Si vous vouliez développer une application qui pourrait démarrer une voiture à partir d'un appareil iOS (ce qui n'est pas une mauvaise idée pour ceux qui habitent à Hibbing, au Minnesota en hiver), vous pouvez afficher deux boutons, Démarrer et Chauffer. Vous pouvez utiliser Interface Builder pour spécifier que lorsque l'utilisateur tape sur Démarrer, la cible est l'objet CarController et la méthode à invoquer est l'allumage.
Le mécanisme Cible-Action vous permet de créer un objet de contrôle et de lui indiquer non seulement quel objet vous voulez gérer mais également le message à envoyer. Par exemple, si l'utilisateur appuie sur un bouton Ring Bell à l'écran, vous voulez envoyer un message Ring Bell au contrôleur de vue.
Mais si vous touchez le bouton Wave Flag sur le même écran, vous voulez pouvoir envoyer le message Wave Flag au même contrôleur de vue. Si vous ne pouviez pas spécifier le message, tous les boutons devraient envoyer le même message.
Cela rendrait le codage plus difficile et plus complexe parce que vous auriez à identifier quel bouton a envoyé le message et que faire en réponse. Cela rendrait également le travail sur l'interface utilisateur plus vulnérable aux erreurs.
Vous définissez l'action et la cible d'un contrôle à l'aide d'Interface Builder.Vous pouvez spécifier quelle méthode - dans quel objet - doit répondre à un contrôle sans avoir à écrire de code.
Les méthodes d'action ont une certaine signature (format, en d'autres termes):
- (IBAction) testDrive: (id) expéditeur;
Le qualificateur de type IBAction, qui est utilisé à la place du type de retour void, marque la méthode déclarée comme une action afin qu'Interface Builder en soit conscient. Et tout comme avec les prises, vous pouvez réellement faire les connexions dans l'éditeur Interface Builder, et Xcode va générer le code nécessaire pour vous.
Le paramètre expéditeur est l'objet de contrôle qui envoie le message d'action. Lorsque vous répondez à un message d'action, vous pouvez interroger l'expéditeur pour obtenir plus d'informations sur le contexte de l'événement déclenchant le message d'action.
Vous pouvez définir l'action et la cible d'un objet de contrôle par programme ou dans Interface Builder. La définition de ces propriétés connecte efficacement le contrôle et sa cible via l'action. Si vous connectez un contrôle et sa cible dans Interface Builder, la connexion est archivée dans un fichier nib. Lorsqu'une application charge ultérieurement le fichier nib, la connexion est restaurée.
IBAction est comme IBOutlet: il ne fait rien dans le code mais est plutôt un tag utilisé par Interface Builder.