Vývoj na iPhone (5): naša prvá aplikácia (III)

En náš predchádzajúci článok Do rozhrania našej aplikácie sme zahrnuli štítok, Textové pole a Tlačidlo. Chceli sme, aby sa obsah štítku aktualizoval tým, čo bolo zadané do poľa TextField po kliknutí na tlačidlo. Vytvorili sme (krok 1) projekt a (krok 2) sme pomocou programu InterfaceBuilder definovali obrazovku. Teraz budeme pokračovať zvyšnými krokmi, aby sme aplikáciu nechali funkčnú.

Krok 3. Vytvorte premenné v ViewController.

Naše rozhranie máme správne. Ak by sme vytvorili Build & Go, mohli by sme vidieť, ako to vyzerá:

Po stlačení tlačidla sa ale zjavne nič nedeje, pretože sme neurobili minimálny zásadný vývoj. V tomto kroku 3 uvedieme premenné a metódy v HelloWorldViewController, a to ako v rozhraní (súbor .h), tak aj v implementácii (.m súbor). Aby sme to dosiahli, ako sme už naznačili na konci predchádzajúceho príspevku, musíme vedieť, že TextField zodpovedá triede UITextField a štítok triede UILabel. Tieto 2 triedy patria do rámca UIKit.

Pokiaľ sme neotvorili a neuložili Interface Builder, urobíme to a v XCode otvoríme súbor HelloWorldViewController.h. Tento kód bude mať teraz niečo také:

Už sa pozeráme na nejaký Objective-C. V tomto kóde vidíme deklaráciu importu knižnice UIKit, kde sú triedy UILabel a UITextField. Vidíme, ako je rozhranie deklarované a že sa rozširuje od generického UIViewController UIKit.

V rámci kódu rozhrania zahrňujeme nasledujúci kód:

Teraz môžeme vysvetliť, čo sme urobili:

  • V bloku @interface sme deklarovali 2 atribúty typu UILabel a UITextField s 2 názvami premenných * label a * textField. Pred nami sa zobrazuje IBOutlet. Čo je toto všetko? Vysvetľujeme si to. IBOutlet nie je typ premennej; je smernica, ktorá pomáha Interface Builder poznať existenciu týchto premenných typu UILabel a UITextField. Mimochodom, nezabudnite, že v predchádzajúcom článku sme vám poskytli trik, ako poznať typy premenných ovládacích objektov (tlačidlá, štítok, textové pole atď.) V Interface Builder. Na druhej strane, otázka * pred názvom premennej môže prekvapiť programátorov Javy, a to ani nie tak v C ..., ale naučte sa, že takto budete písať inštančné premenné v Objective-C.
  • Vlastnosti UILabel a UITextField sú deklarované. neanatomické a ponecháme si to zatiaľ neuvidíme, súvisí to so správou pamäte.
  • Vidíme, že deklarujeme metódu updateText. Má pred sebou znamienko -, čo naznačuje, že ide o inštančnú metódu, a nie metódu triedy (pre ne je vysvetlené znamienko +). Nemôžeme to vysvetliť, pretože ide o základné objektovo orientované programovanie ... Táto metóda nevracia nič (to znamená neplatné) a prijíma parameter typu id. V zásade ide o identifikátor objektu, ktorý spôsobí volanie našej metódy updateTexto, ktorá aktualizuje hodnotu štítka. Môžeme hádať, pretože týmto ovládacím prvkom bude samotné tlačidlo ...

Akonáhle je to hotové, sme hotoví s krokom 3.


Krok 4. Viazanie ovládacích prvkov zobrazenia na premenné ovládača.

Ak to skontrolujeme, na jednej strane sme vyvinuli naše rozhranie s Interface Builder a na druhej strane máme premenné súvisiace s týmito ovládacími prvkami v HelloWorldViewController.h (rozhranie triedy ovládačov HelloWorldViewController.m). Stále však neexistuje žiadny vzťah medzi pohľadom a radičom, to znamená, že sme nedali žiadne pokyny týkajúce sa napríklad textového poľa, ktoré navrhneme v Interface Builder s premennou typu UITextField, ktorú sme vložili do triedy. Teraz urobíme túto úlohu. Znovu otvoríme Interface Builder kliknutím na HelloWorldViewController.xib, kliknutím na textové pole a v palete Inšpektor prejdeme na druhú kartu (Pripojenia textového poľa). Vidíme, že existuje časť s názvom Referenčné zásuvky, bez toho, aby tam bolo niečo označené. To znamená, že momentálne Interface Builder nepozná žiadny vzťah medzi týmto textovým poľom a IBOutletom (Interface Builder Outlet) triedy ... ale v našom HelloWorldViewController máme UITextField IBOutlet, takže ho prepojíme.

Za týmto účelom, ako vidíme na obrázku, kliknutím na malý krúžok vedľa položky «Nový odkaz na výstup» potiahneme na vlastníka súboru v okne s názvom HelloWorldViewController.xib. Umožní nám to zvoliť 2 možnosti, view (úplné zobrazenie) a textField (naša premenná). Je zrejmé, že zvolíme textField, a teda naše textové pole spojíme s premennou jeho typu UITextField. Mimochodom, vlastník alebo vlastník súboru nie je o nič menej ako naša trieda ovládačov ...

Opakujeme operáciu so štítkom, ktorá sa vzťahuje k nášmu štítku premennej ovládača. A s tlačidlom je to niečo iné. V tomto prípade to budeme spájať s našou operáciou updateTexto, ale pre konkrétnu udalosť. Urobte to pomocou udalosti „Touch Up Inside“ a vyberte našu metódu updateTexto:

A týmto spôsobom sme už súviseli s ovládacími prvkami, ktoré sme definovali pomocou Interface Builder, a s premennými, ktoré sme vložili do kontroléra. Zatvoríme Interface Builder a všetko uložíme a ideme na posledný krok späť do XCode.

Krok 5. Najnovší vývoj.

V XCode otvoríme HelloWorldViewController.my a vložíme nasledujúci kód, aby naša trieda vyzerala takto:

Ak sa pozrieme pozorne, jednoducho sme vložili blok @synthesize a implementáciu metódy deklarovanej v rozhraní .h, updateTexto. Pod týmto kódom budete mať veľa komentovaných kódov.

Riadok @synthesize robí niečo podobné ako generovanie typického getra / setra (prístupové / mutačné) typické pre jazyky OO (zapuzdrenie). Potrebujeme ich, aby sa obsah dostal ku kontrolóru napríklad textového poľa.

Metóda updateTexto, ako vidíte, jednoducho aktualizuje text nášho štítku o obsah textového poľa. Sme hotoví.

Teraz jednoducho urobíme program Build & Go a uvidíte, že keď zadáte textový reťazec a kliknete na tlačidlo, aktualizuje sa obsah štítka. V nasledujúcom článku predstavíme vylepšenia našej aplikácie.


Sledujte nás na Google News

Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Za údaje zodpovedá: AB Internet Networks 2008 SL
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.

  1.   pedro dijo

    Veľmi dobrý návod, veľmi jasný a jednoduchý.

  2.   rubdotto.com dijo

    No, musím byť veľmi melón 🙁, pretože mi to nejde. Zachytil som hodnotu v reťazci a zaberá text, ale nepriraďuje ho štítku, aspoň ho nevymaľuje, pretože sa snažím vidieť štítok.text a hovorí mi to z rozsahu ...

  3.   leo2279 dijo

    Vynikajúce vaše výukové programy, skutočne veľmi dobre vysvetľuje tento vývoj pre iPhone, dúfam, že budete pokračovať v publikovaní ďalších výučbových programov.

    ide o

  4.   Mariano dijo

    Ahoj, v pohode, ale nefunguje to. Aby to fungovalo, musel som prepojiť pohľad staviteľa rozhrania s pohľadom v kocke, ako to naučíte s textovým poľom a štítkom. Za ostatné veľmi pekne ďakujem.