Развој на иПхоне-у (5): наша прва апликација (ИИИ)

En наш претходни чланак У интерфејс наше апликације укључили смо ознаку, поље за текст и дугме. Желели смо да се садржај ознаке ажурира оним што је унето у ТектФиелд када кликнете на дугме. Направили смо (корак 1) пројекат и (корак 2) користили ИнтерфацеБуилдер за дефинисање екрана. Сада ћемо наставити са осталим корацима како бисмо оставили апликацију да ради.

Корак 3. Креирајте променљиве у ВиевЦонтроллер-у.

Тачно имамо свој интерфејс. Заправо, ако бисмо направили Буилд & Го, могли бисмо видети како стојимо:

Али очигледно се ништа не дешава када притиснете дугме, јер нисмо постигли минимум неопходних помака. У овом кораку 3 ћемо представити променљиве и методе у програму ХеллоВорлдВиевЦонтроллер, како у интерфејсу (.х датотека), тако и у имплементацији (.м датотека). Да бисмо то урадили, као што смо назначили на крају претходног поста, морамо знати да ТектФиелд одговара класи УИТектФиелд, а Лабел класи УИЛабел. Ове 2 класе су у оквиру УИКит-а.

Ако нисмо затворили и сачували Интерфаце Буилдер, ми то радимо и у КСЦоде отворимо датотеку ХеллоВорлдВиевЦонтроллер.х. Код ће сада имати отприлике овако:

Већ гледамо неки Циљ-Ц. У овом коду видимо декларацију о увозу библиотеке УИКит, где су класе УИЛабел и УИТектФиелд. Видимо како је интерфејс декларисан и како се протеже од генеричког УИВиевЦонтроллер-а УИКит-а.

Унутар кода интерфејса укључујемо следећи код:

Сада можемо објаснити шта смо урадили:

  • У блоку @интерфаце декларисали смо 2 атрибута типа УИЛабел и УИТектФиелд, са 2 имена променљивих * лабел и * тектФиелд. Напред се појављује ИБОутлет. Шта је све ово? Ми се објашњавамо. ИБОутлет није врста променљиве; је директива која помаже Интерфаце Буилдер-у да зна постојање ових променљивих типа УИЛабел и УИТектФиелд. Узгред, запамтите да смо вам у претходном чланку дали трик да знате типове променљивих контролних објеката (дугмад, ознака, поље текста итд.) У програму Интерфаце Буилдер. С друге стране, питање * испред имена променљиве може изненадити програмере Јава-е, не толико оне Ц-а ... али научите да ћете тако писати променљиве инстанце у Објецтиве-Ц.
  • Декларишу се својства УИЛабел и УИТектФиелд. неатомске и задржане за сада нећемо видети, везано је за управљање меморијом.
  • Видимо да декларишемо методу упдатеТект. Испред њега је знак -, што значи да је реч о методи инстанце, а не о методи класе (знак + им је објашњен). Не можемо ово објашњавати јер је ово основно објектно оријентисано програмирање ... Та метода не враћа ништа (односно воид) и прима параметар типа ид. У основи се односи на идентификатор објекта који ће проузроковати позив нашој методи упдатеТекто, која ће ажурирати вредност ознаке. Можемо претпоставити пошто ће та контрола бити само дугме ...

Када се ово заврши, завршили смо са кораком 3.


Корак 4. Повежите контроле приказа са променљивим контролера.

Ако прегледамо, с једне стране смо развили наш интерфејс са Интерфаце Буилдер-ом, а с друге стране имамо променљиве повезане са тим контролама у ХеллоВорлдВиевЦонтроллер.х (интерфејс класе контролера ХеллоВорлдВиевЦонтроллер.м). Међутим, још увек не постоји веза између погледа и контролера, односно нисмо дали никаква упутства за повезивање, на пример, текстуалног поља које дизајнирамо у Интерфаце Буилдер-у са променљивом типа УИТектФиелд коју смо ставили у разред. Сада ћемо обавити овај задатак. Поново отварамо Интерфаце Буилдер кликом на ХеллоВорлдВиевЦонтроллер.киб, кликом на поље за текст и у палети Инспецтор идемо на другу картицу (Тект Фиелд Цоннецтионс). Видимо да постоји одељак под називом Референцинг Оутлетс, а да ништа није означено. То значи да тренутно Интерфаце Буилдер не познаје никакву везу између овог текстуалног поља и ИБОутлет-а (Интерфаце Буилдер Оутлет) класе ... али у нашем ХеллоВорлдВиевЦонтроллер имамо УИТектФиелд ИБОутлет, па ћемо га повезати.

Да бисмо то урадили, као што видимо на слици, кликом на мали круг поред „Нев Референцинг Оутлет“ превлачимо до власника датотеке прозора ХеллоВорлдВиевЦонтроллер.киб. Омогућиће нам да одаберемо 2 опције, виев (пуни приказ) и тектФиелд (наша променљива). Очигледно је да одабиремо тектФиелд и тако повезујемо наш оквир за текст са променљивом свог типа УИТектФиелд. Иначе, Власник датотеке или власник датотеке није ни мање ни више од наше класе контролера ...

Понављамо операцију са налепницом, повезујући је са нашом променљивом ознаком контролера. А са дугметом је нешто другачије. У овом случају повезаћемо га са нашом операцијом упдатеТекто, али за одређени догађај. Урадите то са догађајем 'Тоуцх Уп Инсиде' и одаберите нашу методу упдатеТекто:

И на овај начин смо већ повезали контроле које смо дефинисали са Интерфаце Буилдер-ом и променљиве које смо ставили у контролер. Затварамо Интерфаце Буилдер чувајући све и прелазимо на последњи корак враћајући се на КСЦоде.

Корак 5. Најновија достигнућа.

У КСЦоде отварамо ХеллоВорлдВиевЦонтроллер.ми и стављамо следећи код тако да наша класа изгледа овако:

Ако добро погледамо, једноставно смо ставили блок @синтхесизе и имплементацију методе декларисане у интерфејсу .х, упдатеТекто. Испод тог кода имаћете пуно коментарисаних кодова.

Линија @синтхесизе ради нешто слично генерисању типичног гетера / постављача (приступници / мутатори) типичног за ОО језике (енкапсулација). Они су нам потребни како би контролер доспео до садржаја, на пример, оквира за текст.

Метод упдатеТекто, као што видите, једноставно ажурира текст наше налепнице садржајем текстуалног поља. Ми смо готови.

Сада једноставно радимо Буилд & Го и видећете да се уносом текстуалног низа и кликом на дугме садржај налепнице ажурира. У следећем чланку ћемо представити побољшања наше апликације.


Пратите нас на Гоогле вестима

Оставите свој коментар

Ваша емаил адреса неће бити објављена. Обавезна поља су означена са *

*

*

  1. Odgovorni za podatke: AB Internet Networks 2008 SL
  2. Сврха података: Контрола нежељене поште, управљање коментарима.
  3. Легитимација: Ваш пристанак
  4. Комуникација података: Подаци се неће преносити трећим лицима, осим по законској обавези.
  5. Похрана података: База података коју хостује Оццентус Нетворкс (ЕУ)
  6. Права: У било ком тренутку можете ограничити, опоравити и избрисати своје податке.

  1.   Петар дијо

    Веома добар водич, врло јасан и једноставан.

  2.   рубдоттоцом дијо

    Па, мора да сам јако диња 🙁 јер ми не иде. Вредност сам ухватио у низ и узима текст, али га не додељује етикети, бар је не слика, јер покушавам да видим лабел.тект и то ми говори изван опсега ...

  3.   леоКСНУМКС дијо

    Изврсни ваши водичи, заиста добро објашњава овај развој за ипхоне, надам се да ћете и даље објављивати још водича.

    поздрав

  4.   Маријано дијо

    Здраво, све је у реду, али не иде. Да би то функционисало, морао сам да повежем поглед креатора интерфејса са погледом у коцки, као што то учите са текстуалним пољем и ознаком. За остало хвала пуно.