Swift: bouton de déclenchement des enchaînements à la nouvelle scène
Bon, j'ai un TableView
scène et je vais mettre un bouton dans chacune des cellules et j'ai besoin de chaque cellule, lorsqu'il est cliqué, segue
à ses propres ViewController
scène. En d'autres termes, j'ai besoin de savoir comment faire pour connecter un bouton à une scène (Le seul bouton que j'ai droit est "lait")
Je sais comment créer un IBAction
lié à un bouton, mais que ferais-je mettre dans le IBAction
?
Je suis un débutant donc j'ai besoin d'une étape-par-étape des explications ici. J'ai inclus une photo de ma table de montage séquentiel. Je n'ai pas écrit le code encore.
Vous devez vous connecter pour publier un commentaire.
Si vous voulez avoir un bouton de déclenchement de la séquence de transition, la meilleure chose à faire est ctrl+Clic sur le bouton situé à la vue du contrôleur et sélectionnez une des Enchaînements en option (comme push). Cela permettra de fil jusqu'au bureau de l'IB pour vous.
Si vous voulez écrire le code pour le faire vous-même manuellement, vous pouvez le faire en nommant la séquence (il y a un identificateur option, vous pouvez définir une fois que vous avez créé, vous devez créer la séquence de l'IB avant vous pouvez le faire) et ensuite vous pouvez les déclencher avec ce code:
V2
V3
Vous pouvez utiliser le délégation modèle. En supposant que vous avez mis en place un tableau personnalisé de la cellule, vous pouvez définir une propriété dans sa classe afin de conserver tout ce qui vous semble utile pour identifier la ligne - il peut être de son index, ou (ma préférée) une instance d'une classe qui représente les données affichées dans la cellule (je vais appeler ça
MyCellData
.L'idée est de laisser la cellule aviser le table view controller sur un tap sur le bouton, passant de données pertinentes (les données affichées dans) la ligne. La table view controller puis lance un segue, et dans le substituée
prepareForSegue
méthode il stocke les données transmises par la cellule pour le contrôleur de destination. De cette façon, si vous avez pour afficher les détails des données sur la ligne, vous disposez de toutes les informations pertinentes, telles que les détails de données elle-même, ou un identifiant de la vue de destination contrôleur peut utiliser pour récupérer les données, par exemple à partir d'une base de données locale ou d'un service à distance.Définir un protocole:
puis de déclarer une propriété nommée
delegate
dans la cellule de la classe, et appeler sadidTapMilk
méthode de la IBActionProchaine, de mettre en œuvre le protocole dans la table view controller, le long avec un remplacement de
prepareForSegue
Bien sûr, vous avez besoin d'un
data
bien sur votre lieu de destination-vue-contrôleur pour que cela fonctionne. Comme mentionné ci-dessus, si ce qu'il fait est de l'affichage des détails sur la ligne, vous pouvez intégrer toutes les données requises dans votreMyCellData
de la classe ou au moins ce que vous avez besoin de récupérer les données à partir de n'importe quelle source (comme une bd locale, un service distant, etc.).Dernier, dans cellForRowAtIndexPath, stocker les données dans la cellule et l'ensemble de ses
delegate
propriétéself
:Utilisation
self.performSegueWithIdentifier("yourViewSegue", sender: sender)
sous votre événement pour la manipulation du bouton, cliquez sur:Dans le code ci-dessus,
redView
est la séquence d'identification.