Swift este un limbaj minunat de programare pe care Apple la introdus în timpul WWDC 2014 și acum aproape toți dezvoltatorii Apple îl folosesc pentru a programa aplicații iOS și OS X. Este foarte flexibil, mai ușor de utilizat decât predecesorul său Obiectiv C, și vă va salva câteva minute prețioase atunci când codificați cu XCode.
Acesta este un limbaj de programare puternic și intuitiv pentru iOS, OS X, tvOS și watchOS. Scrierea codului Swift este interactivă și distractivă, sintaxa este concisă dar expresivă, iar Swift include caracteristicile moderne ale dezvoltatorilor. Dacă nu utilizați deja Swift, verificați câteva din celelalte tutoriale ale noastre în limba Swift:
De cele mai multe ori, atunci când construiți o aplicație iOS cu mai multe ecranuri, trebuie să transmiteți date între controlorii dvs. de vizualizare, pentru ca aceștia să poată să partajeze conținutul fără a le pierde de-a lungul drumului. În acest tutorial, veți învăța cum să faceți acest lucru. Vom folosi a Şir
, un Întreg
, și, de asemenea, a UIImage
, așa că continuați să citiți - veți fi uimiți de cât de ușor este această slujbă cu Swift.
Mai întâi de toate, creați un nou proiect XCode. Alege Vizualizare individuală și numiți proiectul, oricum doriți. Veți găsi a ViewController.swift fișier din lista de fișiere de pe panoul din stânga și o interfață a controlerului din Storyboard.
Începeți prin tragerea unui nou controler de vizualizare din biblioteca de obiecte în Storyboard.
Încorporați primul controler în a NavigationController
, astfel încât atunci când apăsați pe următorul controler, bara de sus va afișa o valoare implicită Înapoi buton. Acum, selectați primul controler din Storyboard și faceți clic pe Editor > Încorporați în ... > Controller de navigație.
Acum adaugati a UILabel
și a UIButton
la controler. Puteți să le găsiți în biblioteca de obiecte și să le glisați în primul controler. Apoi faceți dublu clic pe UILabel
și tastați textul pe care doriți să-l transmiteți celui de-al doilea controler. Tocmai mi-am setat textul la "Text pentru a trece".
Pe cel de-al doilea controler, trageți un nou UILabel
oriunde vrei și lasă textul așa cum este.
Acum trebuie să creăm un nou .rapid fișier și o atașați celui de-al doilea controlor. Deci, faceți clic dreapta pe panoul listei fișierelor din stânga, faceți clic pe Fișier nou ... , Selectați Cocoa Touch Class de la Sursa iOS categorie, faceți clic pe Următor →, și numele noului controler de vizualizare SecondVC
. (Nu este permisă nicio spațiere în nume și trebuie să înceapă cu o literă mare.)
Acum trebuie să conectați cel de-al doilea Controler în Storyboard cu noul dvs. SecondVC.swift fişier. Selectați cercul galben din partea de sus a controlerului, faceți clic pe Identificați inspectorul panou din partea dreaptă a ferestrei XCode și introduceți numele noului dvs. .rapid fișier în Clasă și StoryboardID câmpuri.
Împărțiți fereastra XCode în două părți făcând clic pe Editor asistent în colțul din dreapta sus. Acum veți avea Storyboard din partea stângă și cea relevantă .rapid dosar din partea dreaptă.
Conectați UILabel
ca un IBOutlet
si UIButton
ca un IBAction
pentru dumneavoastră .rapid fișier ținând apăsat butonul drept al mouse - ului (sau Control cheia și butonul mouse-ului) peste aceste vizualizări și tragerea liniei albastre chiar sub clasă
declaraţie.
Când eliberați mouse-ul, puteți da un nume la priza etichetei și la acțiunea butonului în meniul pop-up gri care apare. Pentru buton, asigurați-vă că faceți clic pe caseta de combo mică care spune priză și treci la el Acțiune, pentru că avem nevoie să fie o funcție, nu o ieșire.
După ce ați terminat conectarea tuturor vizualizărilor, păstrați fereastra XCode împărțită în două secțiuni și selectați primul controler din Storyboard. Acum, partea dreaptă va arăta ViewController.swift fișier și veți fi gata să scrieți un cod în el.
Plasați următorul cod în goButton ()
metodă.
lasati myVC = storyboard? .instantiateViewControllerWithIdentifier ("SecondVC") ca! SecondVC myVC.stringPassed = myLabel.text! navigatorController? .pushViewController (myVC, animat: true)
Prima linie reprezintă instanța SecondVC
controler din Storyboard.
A doua linie este, de fapt, nucleul acestui tutorial, deoarece îi alocă mylabel
la textul textului UILabel
am plasat în SecondVC
controlor. Ea face asta prin a stabili a Şir
că suntem gong să declare mai târziu.
În final, pur și simplu împingem punctul de vedere la controlerul următor.
Acum, selectați celălalt controler din Storyboard și adăugați această variabilă chiar sub SecondVC
declarația de clasă:
var stringPased = ""
Faceți aplicația să atribuie valoarea acestei variabile secondLabel
cu următoarea linie de cod în viewDidLoad ()
metodă.
secondLabel.text = stringPassed
Ați terminat! Rulați aplicația pe Simulatorul iOS sau pe un dispozitiv real, apăsați MERGE! și ar trebui să obțineți ceva de genul:
După cum puteți vedea, Text pentru a trece Şir
a fost trecut cu succes la noi SecondVC
controlor.
Acum să încercăm să adăugăm un întreg (Int
în Swift) și partajați-le între cele două controlere.
Adăugați următoarea variabilă la ViewController.swift
, chiar sub mylabel
Declarația Outlet.
var myInt = Int ()
Inițializați valoarea în viewDidLoad ()
:
override func vizualizareDidLoad () super.viewDidLoad () myInt = 5
Apoi, editați goButton ()
funcție prin adăugarea unei instanțe care va trece și noi Myint
valoare pentru următorul controler, după cum urmează:
lasati myVC = storyboard? .instantiateViewControllerWithIdentifier ("SecondVC") ca! SecondVC myVC.stringPassed = myLabel.text! myVC.intPassed = myInt navigatorController? .pushViewController (myVC, animat: true)
Acum intrați SecondVC.swift și mai întâi adăugați o variabilă de tip Int
care va primi numărul pe care îl vom trimite de la primul controlor. Plasați această linie de cod chiar sub stringPassed
variabil.
var intPassed = Int ()
Editați secondLabel
linia de cod, după cum urmează:
secondLabel.text = stringPassed + "Int: \ (intPassed)"
Asta e tot. Rulați aplicația din nou și apăsați pe MERGE! buton, și ar trebui să obțineți ceva de genul:
Deci, acum vedeți cât de ușor este să treceți variabilele de la un controler la altul. Ultimul lucru pe care aș vrea să-ți arăt este cum să treci o imagine.
Apoi trebuie să adăugăm o imagine în bunurifolder în XCode, a UIImageView
în ambele controale și variabilele lor relative de tip UIImage
.
Introduceți Assets.xcassets albastru și creați un nou Setarea imaginilor.
Trageți imaginile de 3x, 2x și 1x în casetele lor relative. Sunteți liber să utilizați orice imagine. Am folosit o siglă Apple ca exemplu.
Reveniți la primul controler din Storyboard și trageți a UIImageView
oriunde în ea. Atașați-vă imaginea la ea utilizând panoul Inspectorul atributelor și setați-l mod la Aspect Fit.
Trageți acum un nou UIImageView
în cel de-al doilea controler și setați-l mod la Aspect Fit. Nu-i atribuiți nici o imagine, totuși, pentru că vom trece imaginea de la primul controler!
Faceți clic dreapta pe mouse (sau țineți apăsat Control și faceți clic pe butonul mouse-ului) și trageți o linie albastră în primul controler .rapid fișier pentru a vă declara UIImageView
ca un IBOutlet
. Faceți același lucru și pe al doilea controler.
Acum trebuie să adăugați a UIImage
variabilă la SecondVC.swift fişier. Plasați-l sub intPassed
variabil.
var theImagePassed = UIImage ()
În viewDidLoad ()
, apucați imaginea trecută de primul controler și afișați-o imagePassed
.
imagePassed.image = theImagePassed
În cele din urmă, editați goButton ()
adăugând o linie de cod care va trece imaginea primului controler în UIImageView
al celui de-al doilea. În totalitate goButton ()
metoda este acum după cum urmează.
lasati myVC = storyboard? .instantiateViewControllerWithIdentifier ("SecondVC") ca! SecondVC myVC.stringPassed = myLabel.text! myVC.intPassed = myInt myVC.theImagePassed = myImage.image! navigatorController? .pushViewController (myVC, animat: true)
Rulați aplicația, apăsați pe MERGE! butonul din nou, și ar trebui să vedeți ceva de genul:
Vă mulțumim că ați urmat! Sper că sunteți uimit de cât de ușor este de a schimba variabile și imagini între doi controlori.
Am construit un ghid complet pentru a vă ajuta să învățați Swift, indiferent dacă începeți doar cu elementele de bază sau doriți să explorați subiecte mai avansate.
Puteți, de asemenea, verifica unele dintre celelalte tutoriale ale noastre pe Xcode și Swift!