Razvoj na iPhoneu (5): naša prva aplikacija (III)

En naš prethodni članak U sučelje naše aplikacije uključili smo oznaku, polje za tekst i dugme. Željeli smo da se sadržaj oznake ažurira onim što je uneseno u polje za tekst kada kliknete na dugme. Napravili smo (korak 1) projekt i (korak 2) koristili InterfaceBuilder za definiranje zaslona. Sada ćemo nastaviti s ostalim koracima kako bismo ostavili aplikaciju da radi.

Korak 3. Stvorite varijable u ViewControlleru.

Interfejs imamo ispravno. Zapravo, da jesmo Build & Go, mogli bismo vidjeti kako nam ide:

Ali očito se ništa ne događa kada pritisnete tipku, jer nismo postigli minimum bitnih pomaka. U ovom koraku 3 ćemo predstaviti varijable i metode u programu HelloWorldViewController, kako u sučelju (.h datoteka), tako i u implementaciji (.m datoteka). Da bismo to učinili, kao što smo naznačili na kraju prethodnog posta, moramo znati da TextField odgovara klasi UITextField, a Label klasi UILabel. Ove 2 klase su u okviru UIKit-a.

Ako nismo zatvorili i spremili Interface Builder, to radimo i u XCodeu otvaramo datoteku HelloWorldViewController.h. Kod će sada imati otprilike ovako:

Već gledamo neki Cilj-C. U ovom kodu vidimo deklaraciju uvoza UIKit biblioteke, gdje su klase UILabel i UITextField. Vidimo kako je sučelje deklarisano i kako se proteže od generičkog UIViewControllera UIKit-a.

Unutar koda sučelja uključujemo sljedeći kôd:

Sada možemo objasniti šta smo učinili:

  • Deklarisali smo u bloku @interface 2 atributa tipa UILabel i UITextField, sa 2 imena varijabli * label i * textField. Ispred se pojavljuje IBOutlet. Šta je sve ovo? Mi objašnjavamo sebe. IBOutlet nije vrsta varijable; je direktiva koja pomaže Interface Builderu da zna postojanje ovih varijabli tipa UILabel i UITextField. Usput, sjetite se da smo vam u prethodnom članku dali trik da znate tipove varijabli kontrolnih objekata (gumbi, naljepnice, tekstualno polje itd.) U Interface Builderu. S druge strane, pitanje * ispred imena varijable može iznenaditi Java programere, ne toliko one C ... ali naučite da ćete tako napisati varijable instance u Objective-C.
  • Deklariraju se svojstva UILabel i UITextField. neatomske i zadržati za sada nećemo vidjeti, vezano je za upravljanje memorijom.
  • Vidimo da deklariramo metodu updateText. Ima znak - ispred sebe, što znači da je to metoda instance, a ne metoda klase (znak + im je objašnjen). Ne možemo ovo objašnjavati jer je ovo osnovno objektno orijentirano programiranje ... Ta metoda ne vraća ništa (odnosno void) i prima parametar tipa id. U osnovi se odnosi na identifikator objekta koji će dovesti do poziva naše metode updateTexto, koja će ažurirati vrijednost oznake. Možemo pretpostaviti jer će ta kontrola biti samo dugme ...

Jednom kada smo to učinili, završili smo s korakom 3.


Korak 4. Povežite kontrole prikaza s varijablama kontrolera.

Ako pregledamo, s jedne smo strane razvili naše sučelje s Interface Builder-om, a s druge imamo varijable povezane s tim kontrolama u HelloWorldViewController.h (sučelje klase kontrolora HelloWorldViewController.m). Međutim, još uvijek ne postoji veza između pogleda i kontrolera, odnosno nismo dali nikakve upute za povezivanje, na primjer, tekstualnog polja koje dizajniramo u Interface Builderu s varijablom tipa UITextField koju smo stavili u razred. Sada ćemo obaviti ovaj zadatak. Ponovno otvaramo Interface Builder klikom na HelloWorldViewController.xib, klikom na tekstni okvir i u paleti Inspector idemo na drugu karticu (Text Field Connections). Vidimo da postoji odjeljak pod nazivom Referencing Outlets, bez da je išta označeno. To znači da u ovom trenutku Interface Builder ne poznaje nikakvu vezu između ovog tekstualnog polja i IBOutlet-a (Interface Builder Outlet) klase ... ali u našem HelloWorldViewController imamo UITextField IBOutlet, pa ćemo ga povezati.

Da bismo to učinili, kao što vidimo na slici, klikom na mali krug pored «Nova referentna utičnica», povlačimo do Vlasnika datoteke prozora HelloWorldViewController.xib. Omogućit će nam odabir 2 opcije, view (puni prikaz) i textField (naša varijabla). Očito je da odabiremo textField, pa stoga svoj tekstni okvir povezujemo s varijablom svog tipa UITextField. Inače, Vlasnik datoteke ili vlasnik datoteke nije ni više ni manje od naše klase kontrolera ...

Ponavljamo operaciju s naljepnicom, povezujući je s oznakom varijable regulatora. A s dugmetom je nešto drugačije. U ovom ćemo ga slučaju povezati s našom operacijom updateTexto, ali za određeni događaj. Učinite to s događajem 'Touch Up Inside' i odaberite našu metodu updateTexto:

I na taj smo način već povezali kontrole koje smo definirali s Interface Builder-om i varijable koje smo stavili u kontroler. Zatvaramo Interface Builder spremajući sve i prelazimo na zadnji korak vraćajući se na XCode.

Korak 5. Najnoviji događaji.

U XCode otvaramo HelloWorldViewController.my i stavljamo sljedeći kod tako da naša klasa izgleda ovako:

Ako pažljivo pogledamo, jednostavno smo stavili blok @synthesize i implementaciju metode deklarisane u sučelju .h, updateTexto. Ispod tog koda imat ćete puno komentiranog koda.

Linija @synthesize radi nešto slično generiranju tipičnog getera / postavljača (pristupnici / mutatori) tipičnog za OO jezike (enkapsulacija). Potrebni su nam tako da kontroler dosegne sadržaj, na primjer, okvira za tekst.

Metoda updateTexto, kao što vidite, jednostavno ažurira tekst naše naljepnice sadržajem tekstualnog polja. Gotovi smo.

Sada jednostavno radimo Build & Go i vidjet ćete da se kada unesete tekstualni niz i kliknete gumb, sadržaj naljepnice ažurira. U sljedećem ćemo članku predstaviti poboljšanja naše aplikacije.


Pratite nas na Google Vijestima

Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Odgovoran za podatke: AB Internet Networks 2008 SL
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   pedro rekao je

    Vrlo dobar vodič, vrlo jasan i jednostavan.

  2.   rubdotto.com rekao je

    Pa, mora da sam jako dinja 🙁 jer mi to ne ide. Uhvatio sam vrijednost u niz i uzima tekst, ali ga ne dodjeljuje naljepnici, barem ga ne slika, jer pokušavam vidjeti label.text i to mi govori izvan opsega ...

  3.   leo2279 rekao je

    Izvrsni vaši tutorijali, stvarno jako dobro objašnjava ovaj razvoj za iphone, nadam se da ćete i dalje objavljivati ​​više vodiča.

    pozdravi

  4.   Mariano rekao je

    Bok, sve je u redu, ali ne ide. Da bi to uspjelo, morao sam povezati pogled graditelja sučelja s prikazom u kocki, kao što to učite s tekstualnim poljem i oznakom. Za ostalo hvala puno.