Kehittäminen iPhonessa (5): ensimmäinen sovelluksemme (III)

En edellinen artikkeli Olimme sisällyttäneet Label, TextField ja Button sovelluksen käyttöliittymään. Halusimme, että tarran sisältö päivitettiin tekstikenttään syötettyyn painikkeita napsauttamalla. Olimme (vaihe 1) luonut projektin ja (vaihe 2) määrittäneet näytön InterfaceBuilderilla. Jatkamme nyt jäljellä olevia vaiheita jättääksesi sovelluksen toimimaan.

Vaihe 3. Luo muuttujia ViewControlleriin.

Meillä on käyttöliittymä oikein. Itse asiassa, jos teemme Build & Go -palvelun, voimme nähdä, kuinka pärjäämme:

Mutta mitään ei ilmeisesti tapahdu painettaessa painiketta, koska emme ole tehneet välttämättömiä vähimmäisvaatimuksia. Tässä vaiheessa 3 esitellään muuttujat ja menetelmät HelloWorldViewControllerissa sekä käyttöliittymässä (.h-tiedosto) että toteutuksessa (.m-tiedosto). Tätä varten, kuten ilmoitimme edellisen viestin lopussa, meidän on tiedettävä, että TextField vastaa UITextField-luokkaa ja Label UILabel-luokkaa. Nämä 2 luokkaa kuuluvat UIKit-puitteisiin.

Jos emme ole sulkeneet ja tallentaneet Interface Builderia, teemme sen ja avaamme XCode-tiedostossa HelloWorldViewController.h. Koodilla on tällä hetkellä jotain tällaista:

Katsomme jo jotakin Objective-C: tä. Tässä koodissa näemme tuonti-ilmoituksen UIKit-kirjastosta, jossa UILabel- ja UITextField-luokat ovat. Näemme, kuinka rajapinta ilmoitetaan ja että se ulottuu UIKitin yleisestä UIViewController-ohjelmasta.

Liitäntäkoodiin sisällytetään seuraava koodi:

Voimme nyt selittää, mitä olemme tehneet:

  • Olemme ilmoittaneet @interface-lohkossa 2 attribuuttia tyypistä UILabel ja UITextField, joissa on 2 muuttujan nimeä * label ja * textField. Edessä näkyy IBOutlet. Mikä tämä kaikki on? Selitämme itsellemme. IBOutlet ei ole muuttujatyyppi; on direktiivi, joka auttaa Interface Builderia tuntemaan näiden UILabel- ja UITextField-tyypin muuttujien olemassaolon. Muuten, muista, että edellisessä artikkelissa olimme antaneet sinulle tempun tuntea käyttöobjektien muuttujatyypit (painikkeet, tarra, tekstikenttä jne.) Interface Builderissa. Toisaalta muuttujan nimen edessä oleva * -merkki saattaa yllättää Java-ohjelmoijat, ei niinkään C: n ... mutta opi, että näin kirjoitat esiintymämuuttujia Objective-C: ssä.
  • UILabel- ja UITextField-ominaisuudet ilmoitetaan. ei-atominen ja säilytä, emme näe sitä toistaiseksi, se liittyy muistin hallintaan.
  • Näemme julistavan menetelmän, updateText. Sen edessä on - merkki, joka osoittaa, että se on instanssimenetelmä, ei luokkatapa (heille selitetään + -merkki). Emme voi mennä selittämään tätä, koska tämä on perusohjattu ohjelmointi ... Tämä menetelmä ei palauta mitään (ts. Tyhjää) ja vastaanottaa parametrin, jonka tyyppi on id. Pohjimmiltaan se viittaa objektin tunnisteeseen, joka aiheuttaa kutsun updateTexto-metodillemme, joka päivittää tarran arvon. Voimme arvata, koska kyseinen ohjaus on itse painike ...

Kun tämä on tehty, vaihe 3 on valmis.


Vaihe 4. Sitoa näkymän ohjaimet ohjaimen muuttujiin.

Jos tarkastelemme, olemme toisaalta kehittäneet käyttöliittymämme Interface Builderin kanssa, ja toisaalta meillä on muuttujat, jotka liittyvät näihin ohjausobjekteihin HelloWorldViewController.h (HelloWorldViewController.m -ohjainluokan käyttöliittymä). Näkymän ja ohjaimen välillä ei kuitenkaan ole vieläkään mitään suhdetta, toisin sanoen emme ole antaneet ohjeita liittää esimerkiksi Interface Builderissa suunnittelemamme tekstikentän UITextField-tyyppiseen muuttujaan, jonka olemme lisänneet luokassa. Nyt aiomme tehdä tämän tehtävän. Avaamme Interface Builderin uudelleen napsauttamalla HelloWorldViewController.xib, napsauttamalla tekstiruutua ja siirtymällä Tarkastin-paletissa toiseen välilehteen (Tekstikenttäyhteydet). Näemme, että on olemassa osio nimeltä Referencing Outlets, ilman mitään merkittyä. Tämä tarkoittaa, että Interface Builder ei tällä hetkellä tiedä mitään suhdetta tämän tekstikentän ja luokan IBOutletin (Interface Builder Outlet) välillä ... mutta meillä on UITextField IBOutlet HelloWorldViewControllerissamme, joten aiomme linkittää sen.

Voit tehdä tämän, kuten kuvasta näkyy, napsauttamalla «Uusi viittausliitäntä» -kohdan vieressä olevaa pientä ympyrää, vedämme tiedoston omistajaan HelloWorldViewController.xib-ikkunassa. Sen avulla voimme valita 2 vaihtoehtoa, näkymä (koko näkymä) ja textField (muuttujamme). Valitsemme tietysti textFieldin, ja näin ollen yhdistämme tekstikenttämme sen tyyppiseen muuttujaan UITextField. Muuten, Tiedoston omistaja tai tiedoston omistaja ei ole pienempi tai pienempi kuin ohjainluokka ...

Toistamme operaation tarralla, liittämällä sen ohjaimen muuttuvaan tarraan. Ja painikkeella se on jotain erilaista. Tässä tapauksessa aiomme liittää sen updateTexto-operaatioomme, mutta tiettyyn tapahtumaan. Tee tämä Touch Up Inside -tapahtumalla ja valitse updateTexto-menetelmä:

Tällä tavoin olemme jo liittäneet ohjaimet, jotka olimme määrittäneet Interface Builderilla, ja muuttujat, jotka olemme asettaneet ohjaimeen. Suljemme Interface Builderin tallentamalla kaiken ja siirrymme viimeiseen vaiheeseen palaamalla XCodeen.

Vaihe 5. Viimeisin kehitys.

XCodessa avataan HelloWorldViewController.my ja laitamme seuraavan koodin niin, että luokkamme näyttää tältä:

Jos katsomme tarkkaan, olemme yksinkertaisesti asettaneet lohkon @synthesize ja käyttöliittymässä .h, updateTexto ilmoitetun menetelmän toteutuksen. Koodin alapuolella on paljon kommentoitua koodia.

@Synthesize-rivi tekee jotain samanlaista kuin tyypillisen OO-kielille tyypillisen getter / setterin (accessorit / mutaattorit) luominen (kapselointi). Tarvitsemme niitä, jotta sisältö pääsee esimerkiksi tekstiruudun ohjaimeen.

Kuten näette, updateTexto-menetelmä yksinkertaisesti päivittää tarramme tekstin tekstikentän sisällöllä. Olemme valmiita.

Nyt yksinkertaisesti teemme Build & Go -palvelun, ja huomaat, että kun kirjoitat tekstimerkkijonon ja napsautat painiketta, tarran sisältö päivitetään. Seuraavassa artikkelissa esitellään parannuksia sovellukseemme.


Seuraa meitä Google-uutisissa

Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastaa tiedoista: AB Internet Networks 2008 SL
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.

  1.   Pietari dijo

    Erittäin hyvä opetusohjelma, erittäin selkeä ja yksinkertainen.

  2.   rubdotto.com dijo

    Minun täytyy olla hyvin meloni 🙁 koska se ei toimi minulle. Olen kaapannut arvon merkkijonoon ja se vie tekstin, mutta se ei määritä sitä tarraan, ainakaan se ei maalaa sitä, koska yritän nähdä label.textin ja se kertoo minulle soveltamisalan ulkopuolelta ...

  3.   leo2279 dijo

    Erinomainen opetusohjelma, se todella selittää tämän iPhonen kehityksen hyvin, toivottavasti julkaiset edelleen lisää opetusohjelmia.

    terveiset

  4.   Mariano dijo

    Hei, kaikki hienoa, mutta se ei toimi. Jotta se toimisi, minun oli linkitettävä käyttöliittymän rakennustyökalun näkymä kuution näkymään, kuten opetat tekemisiin tekstikentän ja tarran kanssa. Lopusta kiitos paljon.