Zhvillimi në iPhone (5): aplikacioni ynë i parë (III)

En artikulli ynë i mëparshëm Ne kishim përfshirë një Etiketë, një TextField dhe një Buton në ndërfaqen e aplikacionit tonë. Ne dëshironim që përmbajtja e etiketës të azhurnohej me atë që ishte futur në TextField kur klikojmë në Button. Ne (hapi 1) krijuam projektin dhe (hapi 2) përdorëm InterfaceBuilder për të përcaktuar ekranin. Tani do të vazhdojmë me hapat e tjerë për ta lënë aplikacionin të funksionojë.

Hapi 3. Krijoni variabla në ViewController.

Ne kemi ndërfaqen tonë në mënyrë korrekte. Në fakt, nëse do të bënim Build & Go, do të mund të shihnim se si po funksionojmë:

Por padyshim që asgjë nuk ndodh kur shtypni butonin, sepse ne nuk kemi bërë zhvillimet minimale thelbësore. Në këtë hap 3 do të prezantojmë variablat dhe metodat në HelloWorldViewController, si në ndërfaqen (skedari .h) ashtu edhe në implementimin (skedari .m). Për ta bërë këtë, siç treguam në fund të postimit të mëparshëm, duhet të dimë se TextField korrespondon me një klasë UITextField, dhe Label në një klasë UILabel. Këto 2 klasa janë brenda kornizës UIKit.

Nëse nuk e kemi mbyllur dhe ruajtur Ndërtuesin e Ndërfaqeve, ne e bëjmë atë dhe në XCode hapim skedarin HelloWorldViewController.h. Kodi tani do të ketë diçka si kjo:

Ne tashmë po shikojmë disa Objektivë-C. Në këtë kod shohim një deklaratë importi të bibliotekës UIKit, ku janë klasat UILabel dhe UITextField. Ne shohim se si deklarohet ndërfaqja, dhe se shtrihet nga UIViewController gjenerik i UIKit.

Brenda kodit të ndërfaqes ne përfshijmë kodin e mëposhtëm:

Tani mund të shpjegojmë se çfarë kemi bërë:

  • Ne kemi deklaruar brenda bllokut @interface 2 atribute të tipit UILabel dhe UITextField, me 2 emra të ndryshueshëm përkatësisht * etiketë dhe * textField. Përpara shfaqet IBOutlet. Çfarë është e gjithë kjo? Ne e shpjegojmë vetveten. IBOutlet nuk është një lloj ndryshore; është një direktivë që ndihmon Ndërtuesin e Ndërfaqeve të njohë ekzistencën e këtyre ndryshoreve të tipit UILabel dhe UITextField. Nga rruga, mos harroni se në artikullin e mëparshëm ju kemi dhënë një hile për të njohur llojet e ndryshueshme të objekteve të kontrollit (butonat, etiketa, fusha e tekstit, etj.) Në Ndërtuesin e Ndërfaqeve. Nga ana tjetër, çështja e * përpara emrit të ndryshores mund të habisë programuesit Java, jo aq shumë ata të C ... por mësoni se kështu do të shkruani variablat e instancës në Objektivin-C.
  • Deklarohen vetitë UILabel dhe UITextField. joatomike dhe të mbajë ne nuk do të shohim për tani, ajo ka të bëjë me menaxhimin e kujtesës.
  • Ne shohim që deklarojmë një metodë, azhurnoTeksti. Ajo ka një shenjë - përpara saj, duke treguar se është një metodë e instancës, dhe jo një metodë e klasës (një shenjë + shpjegohet për ta). Ne nuk mund të futemi në shpjegimin e kësaj sepse ky është programimi bazë i orientuar drejt objektit ... Kjo metodë nuk kthen asgjë (dmth. E pavlefshme) dhe merr një parametër të tipit id. Në thelb i referohet identifikuesit të objektit që do të shkaktojë thirrjen në metodën tonë updateTexto, e cila do të azhurnojë vlerën e etiketës. Ne mund të mendojmë pasi që kontrolli do të jetë vetë butoni ...

Pasi të jetë bërë kjo, ne kemi mbaruar me hapin 3.


Hapi 4. Lidhni Kontrollet e Shikimit te Variablat e Kontrolluesit.

Nëse rishikojmë, nga njëra anë kemi zhvilluar ndërfaqen tonë me Ndërtuesin e Ndërfaqeve dhe nga ana tjetër kemi variablat që lidhen me ato kontrolle në HelloWorldViewController.h (ndërfaqja e klasës së kontrolluesit HelloWorldViewController.m). Sidoqoftë, ende nuk ka asnjë lidhje midis pamjes dhe kontrolluesit, domethënë, ne nuk kemi dhënë ndonjë udhëzim për të lidhur, për shembull, fushën e tekstit që ne hartojmë në Ndërtuesin e Ndërfaqes me ndryshoren e tipit UITextField që kemi vendosur klasa Tani ne do ta bëjmë këtë detyrë. Ne hapim përsëri Ndërtuesin e Ndërfaqeve duke klikuar në HelloWorldViewController.xib, klikojmë në kutinë e tekstit dhe në paleta Inspektor shkojmë në skedën e dytë (Lidhjet e fushës së tekstit). Ne shohim se ekziston një seksion i quajtur Referenca Outlets, pa pasur ndonjë gjë të shënuar. Kjo do të thotë që për momentin Ndërtuesi i Ndërfaqeve nuk njeh ndonjë marrëdhënie midis kësaj fushe teksti dhe një IBOutlet (Ndërfaqe Ndërtuese e Ndërfaqes) të një klase ... por ne kemi një IBOutlet UITextField në HelloWorldViewController, kështu që ne do ta lidhim atë.

Për ta bërë këtë, siç e shohim në figurë, duke klikuar në rrethin e vogël ngjitur me «New Referencing Outlet», ne tërhiqemi te Pronari i Skedarit të dritares së quajtur HelloWorldViewController.xib. Do të na lejojë të zgjedhim 2 opsione, pamjen (pamjen e plotë) dhe textField (ndryshoren tonë). Padyshim që ne zgjedhim textField, dhe kështu e lidhim kutinë tonë të tekstit me ndryshoren e llojit të saj UITextField. Nga rruga, File'sOwner ose pronari i skedarit nuk është as më shumë as më pak se klasa jonë e kontrolluesit ...

Ne e përsërisim operacionin me etiketë, duke e lidhur atë me etiketën tonë të ndryshores së kontrolluesit. Dhe me butonin, është diçka ndryshe. Në këtë rast ne do ta lidhim atë me operacionin tonë updateTexto, por për një ngjarje specifike. Bëni këtë me ngjarjen 'Touch Up Inside' dhe zgjidhni metodën tonë updateTexto:

Dhe në këtë mënyrë ne tashmë kemi lidhur kontrollet që kishim përcaktuar me Ndërtuesin e Ndërfaqeve dhe ndryshoret që kemi vendosur në kontrollues. Ne mbyllim Ndërtuesin e Ndërfaqeve duke kursyer gjithçka dhe shkojmë në hapin e fundit duke u kthyer në XCode.

Hapi 5. Zhvillimet e fundit.

Në XCode ne hapim HelloWorldViewController.my dhe vendosim kodin e mëposhtëm në mënyrë që klasa jonë të duket kështu:

Nëse e shohim nga afër, ne thjesht kemi vendosur bllokun @synthesize, dhe implementimin e metodës së deklaruar në ndërfaqen .h, updateTexto. Nën atë kod do të keni shumë kod të komentuar.

Linja @ sintetizon bën diçka të ngjashme me gjenerimin e marrësit / vendosësit tipik (aksesorëve / mutatorëve) tipik në gjuhët OO (kapsulimi). Na duhen në mënyrë që kontrollori të arrijë përmbajtjen, për shembull, të kutisë së tekstit.

Metoda updateTexto, siç mund ta shihni, thjesht azhurnon tekstin e etiketës sonë me përmbajtjen e fushës së tekstit. Ne kemi mbaruar.

Tani, ne thjesht bëjmë Build & Go, dhe ju do të shihni se duke futur një varg teksti dhe duke klikuar mbi butonin, përmbajtja e etiketës azhurnohet. Në artikullin vijues ne do të prezantojmë përmirësime në aplikimin tonë.


Na ndiqni në Google News

4 komente, lini tuajën

Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: AB Internet Networks 2008 SL
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.

  1.   Peter dijo

    Tutorial shumë i mirë, shumë i qartë dhe i thjeshtë.

  2.   rubdotto.com dijo

    Epo, unë duhet të jem shumë pjepër ... sepse nuk funksionon për mua. Unë e kam kapur vlerën në një varg dhe ai e merr tekstin por nuk e cakton atë në etiketë, të paktën nuk e pikturon atë, sepse përpiqem të shoh etiketën.teksti dhe më tregon jashtë fushës së veprimit ...

  3.   leo2279 dijo

    Shkëlqyeshëm udhëzimet tuaja, me të vërtetë e shpjegon shumë mirë këtë zhvillim për iphone, shpresoj të vazhdoni të botoni më shumë mësime.

    regards

  4.   Mariano dijo

    Përshëndetje, gjithçka e bukur, por nuk funksionon. Për ta bërë atë të funksionojë, unë duhej të lidhja pamjen e ndërtuesit të ndërfaqes me pamjen në kub, siç mësoni të bëni me fushën e tekstit dhe etiketën. Për pjesën tjetër, faleminderit shumë.