Swift est un langage de programmation génial introduit par Apple lors de la WWDC 2014 et que presque tous les développeurs Apple utilisent maintenant pour programmer des applications iOS et OS X. Il est très flexible, plus facile à utiliser que son prédécesseur, Objective C, et vous fera gagner de précieuses minutes lors du codage avec XCode..
C'est un langage de programmation puissant et intuitif pour iOS, OS X, tvOS et watchOS. L'écriture de code Swift est interactive et amusante, la syntaxe est concise mais expressive. Swift inclut les fonctionnalités modernes que les développeurs adorent. Si vous n'utilisez pas déjà Swift, consultez quelques-uns de nos autres didacticiels intéressants sur la langue Swift:
La plupart du temps, lorsque vous créez une application iOS avec plusieurs écrans, vous devez transmettre des données entre vos contrôleurs de vue afin qu'ils puissent partager des contenus sans les perdre en cours de route. Dans ce tutoriel, vous allez apprendre à faire cela. Nous allons utiliser un Chaîne
, un Entier
, et aussi un UIImage
, alors continuez à lire, vous serez étonné de la facilité avec laquelle ce travail est avec Swift.
Tout d’abord, créez un nouveau projet XCode. Choisir Application à vue unique et nommez le projet comme bon vous semble. Vous trouverez un ViewController.swift fichier dans la liste des fichiers sur le panneau de gauche et une interface de contrôleur dans le Storyboard.
Commencez par faire glisser un nouveau contrôleur de vue de la bibliothèque d'objets vers votre storyboard.
Intégrez votre premier contrôleur dans un Contrôleur de navigation
, donc lorsque vous appuyez sur le contrôleur suivant la barre supérieure affiche un défaut Retour bouton. Maintenant, sélectionnez le premier contrôleur dans Storyboard et cliquez sur Éditeur > Intégrer dans… > Contrôleur de navigation.
Maintenant, ajoutez un UILabel
et un UIButton
au contrôleur. Vous pouvez les trouver dans la bibliothèque d'objets et les faire glisser dans votre premier contrôleur. Puis double-cliquez sur le UILabel
et tapez le texte que vous voulez transmettre au deuxième contrôleur. Je viens de mettre son texte à "Texte à passer".
Sur le second contrôleur, faites glisser un nouveau UILabel
partout où vous voulez et laissez le texte tel quel.
Nous devons maintenant créer un nouveau .rapide fichier et le joindre à notre deuxième contrôleur. Alors, faites un clic droit dans le panneau de la liste des fichiers à gauche, cliquez sur Nouveau fichier… , sélectionner Cacao Touch Class du Source iOS catégorie, cliquez Suivant, et nommez le nouveau contrôleur de vue SecondVC
. (Aucun nom n'est autorisé dans le nom et doit commencer par une lettre majuscule.)
Vous devez maintenant relier le second contrôleur de Storyboard à votre nouveau SecondVC.swift fichier. Sélectionnez le cercle jaune en haut du contrôleur, cliquez sur le bouton Identifier l'inspecteur l’icône du panneau à droite de la fenêtre XCode et tapez le nom de votre nouveau .rapide déposer dans le Classe et StoryboardID des champs.
Divisez la fenêtre XCode en deux parties en cliquant sur le bouton Assistant rédacteur bouton dans le coin en haut à droite. Maintenant, vous aurez le Storyboard à gauche et son contenu .rapide déposer sur le côté droit.
Connectez le UILabel
en tant que IBOutlet
et le UIButton
en tant que IBAction
à ton .rapide fichier en maintenant le bouton droit de la souris (ou le Contrôle bouton de la souris) sur ces vues et en faisant glisser la ligne bleue juste en dessous de la classe
déclaration.
Lorsque vous relâchez la souris, vous pouvez donner un nom à la sortie de l'étiquette et à l'action du bouton dans la petite fenêtre contextuelle grise qui s'affiche. Pour le bouton, assurez-vous de cliquer sur la petite zone de liste déroulante qui dit Sortie et le basculer dans action, parce que nous en avons besoin pour être une fonction, pas un exutoire.
Une fois que vous avez connecté toutes les vues, gardez votre fenêtre XCode divisée en deux sections et sélectionnez le premier contrôleur dans le Storyboard. Maintenant, le côté droit montrera le ViewController.swift fichier et vous serez prêt à écrire du code.
Placez le code suivant dans le goButton ()
méthode.
laisser myVC = storyboard? .instantiateViewControllerWithIdentifier ("SecondVC") comme! SecondVC myVC.stringPassed = myLabel.text! navigationController? .pushViewController (myVC, animé: true)
La première ligne instancie le SecondVC
contrôleur du Storyboard.
La deuxième ligne est en fait le cœur de ce tutoriel, car elle attribue la myLabel
le texte de la UILabel
nous avons placé dans le SecondVC
manette. Il le fait en mettant un Chaîne
que nous allons déclarer plus tard.
Enfin, nous poussons simplement la vue vers le prochain contrôleur.
Maintenant, sélectionnez l’autre contrôleur dans Storyboard et ajoutez cette variable juste en dessous de SecondVC
Déclaration de classe de:
var stringPassed = ""
Faites en sorte que l'application attribue la valeur de cette variable à secondLabel
avec la ligne de code suivante dans le viewDidLoad ()
méthode.
secondLabel.text = stringPassed
Vous avez terminé! Exécutez l'application sur le simulateur iOS ou sur un appareil réel, appuyez sur ALLER! et vous devriez obtenir quelque chose comme ça:
Comme vous pouvez le voir, le Texte à passer Chaîne
a été passé avec succès à notre SecondVC
manette.
Essayons maintenant d’ajouter un Integer (Int
dans Swift) et le partager entre les deux contrôleurs.
Ajoutez la variable suivante à la ViewController.swift
, juste en dessous de la myLabel
Déclaration de sortie.
var myInt = Int ()
Initialiser sa valeur dans viewDidLoad ()
:
remplacer func viewDidLoad () super.viewDidLoad () myInt = 5
Ensuite, éditez le goButton ()
fonction en ajoutant une instance qui passera également notre myInt
valeur au prochain contrôleur, comme suit:
laisser myVC = storyboard? .instantiateViewControllerWithIdentifier ("SecondVC") comme! SecondVC myVC.stringPassed = myLabel.text! myVC.intPassed = myInt navigationController? .pushViewController (myVC, animé: true)
Maintenant aller dans SecondVC.swift et ajoutez d'abord une variable de type Int
qui recevra le numéro que nous vous enverrons du premier contrôleur. Placez cette ligne de code juste en dessous de la stringPassed
variable.
var intPassed = Int ()
Modifier le secondLabel
ligne de code comme suit:
secondLabel.text = stringPassed + "mon Int: \ (intPassed)"
C'est tout. Exécutez l'application à nouveau et appuyez sur le ALLER! bouton, et vous devriez obtenir quelque chose comme ça:
Vous voyez maintenant à quel point il est facile de passer des variables d’un contrôleur à un autre. La dernière chose que je voudrais vous montrer est comment passer une image.
Ensuite, nous devons ajouter une image dans le Les atoutsdossier en XCode, un UIImageView
dans les deux contrôleurs et leurs variables relatives de type UIImage
.
Entrer le Assets.xcassets dossier bleu et créer un nouveau Série d'images.
Faites glisser les images 3x, 2x et 1x dans leurs cases respectives. Vous êtes libre d'utiliser n'importe quelle image. J'ai utilisé un logo Apple comme exemple.
Retournez au premier contrôleur de Storyboard et faites glisser un UIImageView
n'importe où dedans. Attachez votre image à l’aide du panneau de l’inspecteur Attributs et définissez son Mode à Aspect Fit.
Maintenant, faites glisser un nouveau UIImageView
dans le second contrôleur et définissez son Mode à Aspect Fit. Ne lui attribuez aucune image, car nous allons passer l'image du premier contrôleur.!
Cliquez avec le bouton droit de la souris (ou maintenez Contrôle et cliquez sur le bouton de la souris) et faites glisser une ligne bleue dans le premier contrôleur .rapide fichier pour déclarer votre UIImageView
en tant que IBOutlet
. Faites la même chose aussi sur le second contrôleur.
Maintenant, vous devez ajouter un UIImage
variable à la SecondVC.swift fichier. Placez-le sous le intPassed
variable.
var theImagePassed = UIImage ()
Dans viewDidLoad ()
, saisir l'image transmise par le premier contrôleur et l'afficher avec imagePassed
.
imagePassed.image = theImagePassed
Enfin, éditez le goButton ()
méthode en ajoutant une ligne de code qui transmettra l’image du premier contrôleur dans le UIImageView
du second. Le plein goButton ()
la méthode est maintenant comme suit.
laisser myVC = storyboard? .instantiateViewControllerWithIdentifier ("SecondVC") comme! SecondVC myVC.stringPassed = myLabel.text! myVC.intPassed = myInt myVC.theImagePassed = myImage.image! navigationController? .pushViewController (myVC, animé: true)
Exécutez l'application, appuyez sur le ALLER! bouton à nouveau, et vous devriez voir quelque chose comme ça:
Merci d'avoir suivi! J'espère que vous êtes surpris par la facilité avec laquelle il est possible d'échanger des variables et des images entre deux contrôleurs..
Nous avons créé un guide complet pour vous aider à apprendre Swift, que vous commenciez juste à vous familiariser avec les bases ou que vous souhaitiez explorer des sujets plus avancés..
Vous pouvez également consulter certains de nos autres tutoriels sur Xcode et Swift.!