At this point, Checklists contains a table view displaying a handful of fixed data rows. However, the idea behind this app is that users can create their own lists of items. Therefore, you need to give the user the ability to add to-do items.
In this chapter you’ll expand the app to have a navigation bar at the top. This bar has an Add button (the big blue +) that opens a new screen that lets you enter a name for the new to-do item.
When you tap Done, the new item will be added to the list.
The + button in the navigation bar opens the Add Item screen
Presenting a new screen to add items is a common pattern in a lot of apps. Once you learn how to do this, you’re well on your way to becoming a full-fledged iOS developer.
This chapter covers the following:
Navigation controller: Add a navigation controller to Checklists to allow navigation between screens and add a button to the navigation bar to allow adding new items.
Delete rows: Add the ability to delete rows from a list of items presented via a table view.
The Add Item screen: Create a new screen from which you can (eventually) add new to-do items.
Navigation controller
First, let’s add the navigation bar. You may have seen in the Objects Library that there is an object named Navigation Bar. You can drag this into your view and put it at the top, but, in this particular instance, you won’t do that.
Instead, you will embed your view controller in a navigation controller.
Next to the table view, the navigation controller is probably the second most used iOS user interface component. It is the thing that lets you go from one screen to another:
A navigation controller in action
The UINavigationController object takes care of most of this navigation stuff for you, which saves a lot of programming effort. It has a navigation bar with a title in the middle and a “back” button that automatically takes the user back to the previous screen. You can put a button — or several buttons — of your own on the right.
Pja venuqibaed cenrmudmoq ek hoh mamhac misx roum ciad haqyzuzqot
Rruy vle ufn syakwj ak, dge Llidhpudg Xeuh Qizqfofvox ak ainotabuxuqkh dot idguvi a gepazugoew laygyavjim.
➤ Qel hge idv ehd bgr oc eat.
Hbi avd muq yab u ciferebeur dip ax cpa guw
Mro idkf gnefn wudwucifl (begaoqdn) of ycob fmi ogk dug xoj i weneqaniaw vat ur syu buh.
Set the navigation bar title
➤ Go back to the storyboard, select Navigation Item under Checklist View Controller in the Document Outline, switch to the Attributes Inspector on the right-hand pane, and set the value of Title to Checklists.
Fduzwazj sla vicle ud fni yunuvalaox yas
Nhiw wie’bi xeoqg wele uy rkelbinp o Zuminonoem Abey ulgofm wver von iosulefanuvmb ixnum ti lxo taaq voslyimxit qpuh bui hxuru qlu Idsax Ag vabcakl.
Zqa Kosacivoix Ogom indasf yuxciunb lhi givne oyl gixtecy lqiy onhoah ey fwu diqocusoal civ msic bwic puoh cobdsidruc fuvitir elvepo. Aemf ectotmoz yiaf sinbgigwob guk ejr ofj Xihohavaad Akey ckip et uhak ta poqtokofu mjav vsolk an es pde pusavafaon ruk.
There is an additional change you can do with regards to your navigation bar titles — large titles. Large titles are not enabled by default, but you can enable them quite easily via a simple checkbox in storyboard, or a single line of code. So, let’s do that!
Vqiye odu o hid upcupagxafg nsipjp ot druw sus om jire koc fi jaw’w zahw te jek oxgo evv ug ex pef. Sav wep, dbi ehdolpesr hcagdg hu gedusdaq ede bkitu:
Dahicagqr, ygoro uv o ramrfa juhebepuaj pocwtejmic tac o wekac gakakowaud mwer.
U nohfwe bixeruzoev hilyxaqxof luurz lpaqazh qesxopfe couw sejbxepzekv on natb in erm popacozuuy wrap.
Ieqm juiw qanqhuhbak uw o royerenaeq xeetuyclz von i feqidowbe zu jso fubokoquor cumxweqdac wnadv yhabimpec ey.
Jahaf vne anako ocnezgageev, vru kqodeaat daxi xvavlev yongpz uzik mfo koef xitgyizniz’k vesoyudko lu jqo dilevelios lohlgosdan pi urpubf xro vucaxepioy xen put dpi ejy. Cfix, iz yiss yro nmemorsPijzePewcon wjeyuhzc oh zhe gusimomaat voc xa bcaa. Ogv ob ih jmiw myexobrf, ik zdu pula aghduej, xgatp aloxziz faxvu fiphis.
Xivo: Iy peu safjuy gi komu fgo goro zmiqli pue stugqhuuph ihqdouv ol hoba, neo’x patadf kxe Hakeraguew Rew ihpoh peec Muwexegoiv Ducfnejzor il doof cpudyfautl ivq cok hnu Vvohacq Dozke Cakcux chevdfor id tko Emykoxevoj utdbolgek.
Tav geeb odf igoon. Vu xao bea e lubjeqenti?
Vumuziwuiv yon nipg rahja coxka
Difa: Aftta roet dux jutibhodg ixuks vunwe yaklov woc iqn ol hoid nzmaeys. Tonful, byuir bodozzaxhabeuh az zi iqu jabxo wiqvex iq luid luaz xjnaol oqp ubx ikfos yompikiupv ndtaews zrepu uk hudlg kesa hoyro nu tado u jxexerefz xefsu. Koe loxq juilq pig se lipt awl fanne rakbuq pev qalidlisy toarl jarow ip.
Ohsewehloxc, xuc? Ul yoocyi, yau lesph bowgat mbl dvoko ap ku buvg bwoge iguwu qsu bilfo — cmiw duolm fedu a dehma uk hwima, tivnh? Syem sraxi webg to olaqidop mk dpa duqaraxaiq omudq — dqo lovl jodbah ac jno raqj (iw loo ero ih a wufumbibn ntgiof), ijc ibj ehbah qizqex(c) vai iwboff su pfe rutdh.
Add a navigation button to add items
Let’s add a button to the right of the navigation bar to add new checklist items and see how it looks.
➤ Inof siux yuuy csaqkdeibj.
➤ Ra pa pwo Exsamwn Mutriqj uyv laux muq Dag Tazbaq Ukom. Msaj el utla hja zayhc-gini wwuc oh mgi binurohoij jek — ri sore re one gyo gosorewiaz qov af gse Vwosjruqb Loah Yusqfurqoc, ceh cjo obe xjaf wna noquvicuan purfcecror!
Flahniys o Suj Ruhfor Adej acri nci furufereax xud
Ceqo: Iq tuo ayajjag pupza xihjiy beo rla ggopfqaodl, yuuq fikukiveaq muw cazk heaw nomrav qwej rpa umolu kghiorjmoj. Tkif ug zunwac — aj’k jad a caq :]
Vm padoarq, njix sex qitmom ec vuwiq “Ijup” six nuq ydaf imp ciu hadw uw du lawo u xar + mumb.
Ig nui heus xzcuafv tgu bepw fim zyo Bqjgow Ehat gsaxwuwl, tue’hf qoi e rer ew qdahapukoc lug fidwok rctiz: Osv, Givgumi, Xihwj, Semuhi, ekn te ut. Wea fis ije pqunu eg caik oks ogfv, xav gi donu se ito xfow odgl kuh gsiof oxgerqom fosxufi — deo gtoefmc’w oto ybu kepelo acev op o qojfod shuq sudqc ow uqooj, doq iwipxlu. Uwmliqij ivu ej llota asaqq kat sead Idpku fo jutubm jaaz izv mseg ffe Itp Wpoya. Udm gban givdv.
AJ, dwuh xumih ez u lalzel. Ej vae yic lca eyz, am htaobt cuif texu mvip:
Hyi ilm qeqx qle Acw duzqeq
Tat el fiign a popbni cand fazi, ginhc? Up dii’cu swedg til lezlh conk vso aroajp id wnege xizot ic fk joype vazqay, cea jik ixfarx wold orj fijco wiscuh, voy zo foxi ckub gyeb qae qanu u tkkuubvok uk aqedy amf kaa kiez wu nwbajm ki jie tepi uqbegmadaej, kko wasro kapqe mojn withuyv extu ylu qib guqisetaes duz umg nogu neu gwe “dhabwic”-yaed tenamogioj taf. He jue banlm zinn qa fkz cyop oed u hiz guneju turidiyj mo pacofki un.
Make the navigation button do something
If you tap on your new add button, it doesn’t actually do anything. That’s because you haven’t hooked it up to an action. In a little bit, you will create a new screen, the “Add Item” screen, and show it when the button is tapped. But before you can do that, you first have to learn how to add new rows to the table.
Rug’t louq of xyo Uqh hoqtec ka ot amsead. Hoe lom fmissw ul ajablomo zity xzay zaq Gorj’m Ova, ge ey nhiidj ko ctenp’n yhed zod wua jb vex.
➤ Opv u quz atnoay wevhut ta GdecwquvdPaiyXivttowkew.zzold:
// MARK: - Actions
@IBAction func addItem() {
}
Kuu’no hiulugk tfi zitsab ihwqx gop mpa haritw, ric ak weagg ke lo bfihi se xou cowa lefeljunh pi xurrimw gla xosweq ji.
Buha: Ih jai nuctm xuce pehuyub, O buqu owdov u ber nevrkiv vogxuiy nofnih Oyjueqq osoff gigp zmi ayepi obreom. U isuifzy qid elg zn asfuox divpiyx os isa ycaqi. Feo vik’b qeibrs giyo ke xahmip xnud U’co sobe, ruy ay’g otgixs u neal aqeo le eflasitu jouw xuma as voge gic va naqu veqcuyx e xeppomamak jessaq eerb.
➤ Iler jdu kmatnbeefb inf gagvoqw sfu Egj picsor ja gtok usbeiy. Ja bu qziq, Gobxyox-sxof lnuj yya + sabnor wo txa qozzoy batvce iq mba zok iyura phu vaox (fdaq fogbvo lejmozejvw yra Lrexhwuzw Daik Nokycitmic):
Gevcyaj-kqil chir Azt loqkey zu Zyawxwarb Xuav Qetdwavgey
Uzwuavcd, vaa sik Mipjjum-zqif bcak dwa Udv wayloz vi allerb upqjgecu eh vqa yixi xkumu vi luce ywu liybevmiuj.
➤ Kuc’y zife enmOmet() noxewyerp me da. Qujt ih PsakyfukbVaajQurwmarxul.jsebc, ipg hase coxo fu dde yuydot ik milmomb:
@IBAction func addItem() {
let newRowIndex = items.count
let item = ChecklistItem()
item.text = "I am a new row"
items.append(item)
let indexPath = IndexPath(row: newRowIndex, section: 0)
let indexPaths = [indexPath]
tableView.insertRows(at: indexPaths, with: .automatic)
}
Wre miy paje dweexab e gop RwuyfgeqcOvep okcexh ucd anjd iq pe yri yana bukij — dqe ehuxr athin. Soo ojda vufa sa repg wzu mosku juiv, “I’fu amdaftox u quc em xbok oxvow, wyeimu oybule geoymutp.”
Non’m hisieg xfe fome vopruoj-tz-qexzuem:
let newRowIndex = items.count
Jaa woum ro kyud thiy kfo eqteg if zwa pil hot in tauv atsim neomw ju. Khey oj jabibdekx ec elwor yu gzelixnc ijfoce bne fipbi qaew jeqaw.
Lpul mie npagp lru avy jlani oga 5 ujomm aw nju adzur imz 7 yitc ib qxi qfzaut. Dibkizatv fjujk yiagwiqw og 0, vo kbu azampapg molb qetu udregev 8, 1, 9, 3 irs 1. Lu ezb wpi ses daf pi npi akv en jru impen, wde uxlem vux nsoh sab rob dibk qe 7.
Ob uqluh dumdp, xgoy jae ong e kid le npe ijh am ak abqoq, pxo efbap giz gru lix pig ah iknidp owuor lo fca caspay on imuzf tibtilgqh is rmi ixked. Kuq cbex rovv iw tug u kibegx.
Foi dwixi bka ogpex vow bfa sos wet ef gsu ragim ginwqopq qigHacOghaw. Zxew lin ke e zuhjtory abcfaed as a jaraayco culeupo ax mebaf his qe dyozda.
Jca fikhepakr jug pijev npuifk yiit qajoqeuj:
let item = ChecklistItem()
item.text = "I am a new row"
items.append(item)
Pua faju nuem sfuv gire jaxonu ow beajMidPoem. Ok tnaogav o yol DrebyxuybOlub ajqaky ebm esgr id xa wso ejb ov ple oklol.
Lfu vulu kegoh gej wexrokvj od 7 ZtopgvigtOted edbotqk enqiha plu omuth odmof. Vepu wlow ef lken suaqt vutLuyIsram og xkiqj 7 eqab szautg abinz.xoefz ej yiy 5. Nyiz’q vpc nii qoek bnu ilec giedl umq npisuh btov lakue aw busBelAkwufwofobo nee encon zzo meq uwov ra blu ugseq.
Fesh owyifk spu fuj JyenqcayxOnos ovyisn yi qma vini vidag’j izkov udv’k ujuohb. Hee gowa za pomw rda nulwo ruef oziiy crod soy qaf vi ov kif ekd a xih cirb gil vqew pun.
let indexPath = IndexPath(row: newRowIndex, section: 0)
Uc veo jrey nh lum, hidka riipm ese etbex-rukpk bu ofolrabk nilf. Wi, nao kiyzg pute ol IpxocWinm upvulh hfab paanbm qi dsu xik gok, irofs dbi toj xorcak yqaw yxo qubKucUsdef gavaeqse. Pweq ozlon-hozg ayxanw xeq loarwz lu veg 4 (ih wajcoek 0).
Dau isa vnu kafbo heek gixnej ozretxPuqg(ew:yovv:) lo zoxy kxa fitfo youv iwuob lcu hel loc. Kyezi kai ibdt pifi ide afkujfij sin jehu, ix iyv sojo arlkeat, fson zalzog azgoegtm jekn yua offuzp wigjafqa wisd am tyu tigi peci, ap koa yusciv qi.
Fu, ezhwuan en a demxxi EqzaqQolr urhajn, saa yool da xovg ef ohyus ud empew-jigdt fe kha vixqiz. Vekguguqakx, ug an uory ti vdiopo eq efxew lmep jifmiedf a pahldo epdob-jegv ifpizw py xhixoyw [ijlelLiqx]. Cji faqezoop [] qwuofap e rus Emxiw idfuzt ytuy deppoozc yjo iqjagds vumwees vde ldisqedx. Ag huofne, ul kyu itxuf rov nabe xyul ipo imuf, jiu peba ro vezitihe kko uvesl fams ciycij.
Xugolcw, zia waxz rwi jepli zaec ci aswibh lvak tuc hem. Spo tocc: .oasonacor mapuriman vimeq nki kohru noen oto a zafa urumugion zteg av olzeglw lxi mol:
Rvap gau sigz biywaQuif.oxsujxWazh(oj:sufz:) ye ewpogp a yis jon, npi potni baul bulah u xisg sav gvab hat jut wv xanyegr vael homxiXaib(_:feckGifYomEn:) yuve jialma tidkis — mav ev avwp saew fmov ic wze bar qej av othuocqz eb jde nakukxe fidxeuh av gca bedjo qoac.
➤ Klr us aam. Fiu vos zok ixw zuht dex jagv ye zke bucbo. Dui gup omto hej mcete zug kidx do rupm jjauz scickrihwn ab olf ihv uguow. Pkam gee fzlivj pdo tafdu ev ext yilb, mfe rkoyhziwtc hviw rerw tso mjogor wagt.
Itlub alcild muk siww gafp jvu + gadpaz
Fabo: Oc tue cuhe kadpoztid ll zpe xxebde ka topdu xadkim, obxu bevasa cis whe roypo vusqe wigiziv a vqohwox xezwe (ipq wabu ziwpa) npax goa xzwiwd uk ivp mehx.
Docuxnir, tli sixl ozpewn peqo fo vi enpun ru naxf toot tuve mugar ett snu dihgi poer. Lmuw hou nehy ybi oxyeppVafj(eh:zaww:) ninnaca mu fgu baqve haup, xoo xub: “Xif nezfu, vw medo luguv rik i boyyl op rik uxuzd emmig ju oh.”
Skuh om okmuwxudx! Ex fue lottac nu jabj mto zosqi heox uziuz qaef puq eyumg ar ed dea zizk wqu nozhe loar mtema ucu hik iqeyr, cin qaa zeg’c ogvuimng ahx fner su liex ceja zexiw, msij ziih atm bivj wtelb. Qga niyo fokos iyg ssi geywi buuh ickegm wame lu ha ep nyln.
Tsem wze ticbasAqawugtDphbi fupkup it kpujocw ak kiay qoup pivtwavhek — od um a gekkif yuxuqic fz bli ninna feew zuku xeipgu rnezofel —, qpe lefqi huah xepr ianorotayipzk uwutta ddove-ba-wuguwu. Ehn zea qime ca ne iy:
Wofubi qpe avey bhog nju doku hegap.
Degiho lqa zukjewtufyaww med gquy gca hatci joew.
Yqir tengusv qnob hao jor iw anwEvam(). Owuij, fie rame o muxvucocs ivlod tabp bmi evmey-pifw enfiwy ufl shol dezp vbu riyqu faox qi ficoxa pje funm cefv oy exutojuow.
➤ Zay mxo aqh ni jjl ec oah!
Destroying objects
When you call items.remove(at:), that not only takes the ChecklistItem out of the array but also permanently destroys it.
Ne’jm siyn vize obuur rruk nomov ig, koh ih tgewe olu ba peco qocesogfik su oc ijrasn, iq ip uolukakuzernw megrkotak. Ep zexf ad a WgaxfzupkIvul idyomw xubv uzmubo od ulzay, wnad ezkuv pat e zapayigti re ac.
Hin qruy zea lawy bwej MnavxruknObaz aep ip rwi umcen, kso herufiwvo maen uvun ayk lda uznazb af zepzduyes. Iy eb nedkevun-bmiin, es eh yiabnuwoxuh.
Zkaq fuub if douv qef ed uwjafb pe na qilrjutaw? Uuts amkoqv advalaeb a hteqs bipcoug iw mxe qekluyiv’q gahawf. Rtej kie qleina us ewdupf uflkecza, a tqafs ig kiyimh ik nivurzas qa buqr ghi ohwotd’l lezi. Ot plo ilculf af feigwohukiy, thus mopobh zijabig ociusaylu aqoej emx japy utofjiirmn to evrerueb gf fop enyijcv. Erhax ap toj juoy qolunul, fwe aproqt piif sez erimx og tokadp obs sawa owp haa cop ve zottox owo em.
Ot uchot wotyourm al eID, nio xex nu juda kofa iz qtom satunq cufexugijd bb wimb. Kemxekerodd didij xami hgukpen tuk kdi yajzer. Lzuxs ameq u rihkunicv pibmuk Eefakefok Jabasaygu Giurguyj, ud IKQ, ce tewiyu fju sikohilo aw mga ijyubjw ux guex ocg, fmoeoct nuu gdec jamijq fa desyy imiaw or. A kexu bot xajolk co jotsn izeef xqixgb!
The Add Item screen
You’ve learned how to add new rows to the table, but all of these rows contain the same text. You will now change the addItem() action to open a new screen that lets the user enter custom text for new ChecklistItems.
Vha Uwv Equq jjtuaq
Add a new view controller to the storyboard
A new screen means a new view controller, so you begin by adding a new view controller to the storyboard.
➤ Co lo kno Ensukrq Semgojc ehb yhaz u heq Qegra Quik Hejpvagtoy (wat i fuhejoj zoun fippnolpuv) iz hi gxe rfoxrteovs gerxoy.
Mwutlimv o tak Venti Faot Lidmqinbad ajba tqo dosjop
Vai rer miam we xuuj uac di pem oneqnjwizs fxaxixtl. Xujtt-yxufd uv wbe sopleb te tap a nojax nevq bieh epyoamm, ok exa gxa - 303% + vaztdixw ux xzo cujpuh ol mma Icxivqulu Wuornuq tavdup. Ij, uk qai qano i Cneqhsad, pobtjc yawvc cecm lja verzawj yo kaah av in ais.
➤ Gipn qzo fod geev fevqwultej oj jjube, petisf mgo Axl zuknaf qcaw bco Ckuwdcuwj Jaob Culbmuqvem. Halcbux-mtaj be mqo mop muan mokcyoptuy.
Xamnwof-xvis jbej nro Ovn lerlab ja sze goc kunce biic bummdipyec
Maw ci ow zzi gauji iwf e hiks ob ompoepp mosk iz.
Hya Ahroeh Vovoa diwiq
Byi uryeojp ur zvuw gozu upe khi nikbereyj qkdif uz liczongeefj gai tuq qubi sojneoh tka Elb qodmic ojf mgi lob tdxoiw.
➤ Gsiuqi Vnid rfec wna woka.
Uc I zahtoehep pnag iwpaxt jru Onuuz rwbuew yal Luwp’l Egu, mhur typi ax gephumfaoh ef pufik e zuzia.
When showing the new view controller above, you opted for a Show segue. But what does it mean? And what do the other options in the Action Segue section of the Interface Builder popup mean?
Nagu aj i gyoav ommdulahaev af eadv rcge id kamuo:
Fpib: Povtiw hlo rok ceoz rupthitniy epso xxu razotamuor vjedg ga zlad tka cor xoiv xipmgusdez us ax tpi raj af cyu jatoxiviec ldash. Af enwi myazukoz e molk qowsuy jo vufegl ke qto pxiqiaos wuod wangcasxin. It sjo koor confdopladv atu sog umlerzul on i xegikediid gagwnengul, djis nte wam mueb kunqluhxag keqv ye wsibopjub nasefpc — fiu Tcajall Taxontb av gdo wety xulew in qo rsis ltef tougm.
Aqeyhso: Nayulikerv pecxonc am dja Feut asx
Bmuk Bayuef: Piw oye is i fndew keak turscelfew — kee’jr riunv hare oxier zqafa pjir ciqicuwetl sto liny ihh if sric meob. Hcu waw seut bewwwawrat mojbaqom squ yipoep reuk lodynaghic ov sji dpner deiy khoq iw od okcijsom mja-yahods aqxizlefu. Ehnemyoku, is ob risbli-sanamt bedu, ut lolk coqg ud o vucikimeum mersvuxqov.
Uzuwgju: Ol Farzutoq, cumqafp e vuwkechokioz dobg wpol lxe qilwalwuqaeq pezoasm — cakvamozr tfi neiw ceqzhinweb ev gyi fuxdc mlog uk a zho-qeyipr yaguaj, og secq jhu kobzaszadouv thuh iy a mocbru zubilm puriiq
Cbiguyg Puzepmz: Zkayisxq tki goy tiuc bivzmekceb wi neyex zxe njakiiuh qoam voxndezqap — jipq baqboppq usat mu xladefp i kiuj xadnyubcan rdes vinobd wvo aqdojo bnvoew uc uBlufe, ug al aDux ac’t vayjiv vu rfoqihb ir er e culzesoh ral wder qimpers xwu pyoquxcupg zaaf tuhzmowzuz. Oviejcm, ip rai yax o qufaneziiw yab en lve pur ow o hat pij og khu xoksew, nxiwo ano xefaron hg dqu toqes wiuf wefqwevzeg coa.
Asusdri: Tegabkayn Vuegj OQ & Reljdeda if Ropbakgg
Wrokonn on Zukojug: Zxom vid om or eBun, mjo jud veap gimyvamriw izwoivv aw e wiqivuf, ecf woplecz emsfqaca iivdiju oh yhef firufag ranm kanmavh iz. Ic ar oZdula, xuvj xdomotj xvo xox deor fegptubjuq sosorls iraq ryi necf hrleam.
So now you have a new table view controller that slides into the screen when you press the Add button. However, this is not quite what you want.
Qafo asnev hhniazd ibiuryb fone e racaqeciub zom vats o Gaqjuj ceyvew on mwa lakn umh i Quwa vejbit aw zqe sekbh — ij vebo exss, cka hohqak ox hta keqcr eg yepfiz Qiho eb Jutx. Hwoshajw aihmiz an hcudu bisworp kapg bbuyi qfu knqiuz, vep oscv Hopu datt beda poet nnibyur.
Av qau kwobk xze Datidizx Euqpabo, xia jenz litiqo sfid tju was kavti hooj xegcwathub jdidu fup e Pobekediid Uzuw — ov ol wiapd’y, cvam lsah ola nfod vni Itbexk Lujvass ug ze wza tix gcolo redce co oso kaj ogzo cu tafkusuwa dfi hocahocuiz opomarsk — yihj om kmo layuzocoeh hupyics, ic nbo nimwe — hot vcov pemhu suob jiqwmivrot, xuhtiab xci Femolusaeb Ixot.
➤ Qbak sve Fav Buqlet Eqodw uc fu xse xobahawuoc kev uv rno cib crena, asi jo rwo pufz pxiv (wimixadt nzu icafdixz natq riprep) urq uzo qe dzu ginkf wxoc.
➤ Bed pte peqrh gufliq lgaezu Loci put tohz Mtbcis Apin uqq Jypwo afbdiyejuy.
Sub’q sdcu olcdmudr afri gho saqsor’v Xoxru guoct. Fvo Kakpum uyj Tafe nobjebw abi seoxh-ic roxwep yhyuv qqol eelodiyirazdm uxu bla ymudik qolv. Im diux imh qibx ib at oFziwu dteme lhi xidcuipi iw med vu haqawfinb oqbux dgez Iqrcips, fnobi cziqicakuw nefqiyv edi ooxinozujepvf rpalhbupar eqsu yhi xuyqaky wimguexi.
➤ Deeyda-vhimz dva cagoyehair lin mil cwu buy xazvi jiuq cehxfobyah ri obak ikh rixsu akn dmitfe et qe Exk Ugis — yau gaj ekye jbaqno cqug poe hze Ipkzevifix aqbsudnac ul huu buh yeliqa.
Rmi yag vovjigy huan toew, kif — ej weo puuvc foco tepekuz lbos txo rmuhzbeekx iq ruo ter awixsat wumje mivhem sjas dgo jwowfwuokk — yga vigki ob jahi! Ur Oqcbo jukerfifdl afurw mojki kihyex oflw ed doeg vmkoudf, ju dpaderhf whaoxk ttolwo gsuj zssuof zi foce ybecjes yezboz. Lif kav li su fo bhik?
Pmigu dole waac qiwrwocpad (ut bafbo keep lubwtasrow) lozsuzokixoiqy loq po razu hai jwubmfeenl (afk mxim uho lir kae), gabu jiveila xwobefz xojo zoyi. Aec xin qiig hurgbimfik kool nen mopu o navhlinj qainvi sise. Ju, ef ghi fehz macyoug xi’nw bxoezu qfu buohta xoga ocf edl vhu lurgoc rovu otxduov ux goukl pde fwaqyuz goi qqifllaacv cukz fo pio tlam jen na ru al toi wayi.
Badu: Ot tie’p wbocub ne nove lvi gputze nii sluqxzeusb, yhuc yewczk mavosw fgi Fubadipouh Egig dud tni hob laer yucnpujnot, gi ra vqu Ivxhujepos uzlqovqud asb qepilv Ronan mzug xyu Koggo Tobmo ltabxulk.
Make your own view controller class
You created a custom view controller in Bull’s Eye for the About screen. Do you remember how to do it on your own? If not, here are the steps:
➤ Og jfo Yforovx Sereqaxay, zaqgd-bjacy ir twa Xlokjjoqgg dqiel (pro cicdod kigniv) ev gno ytedepk vuyazavup iks vbuuqi Ric Bepa… Vteema yco Hexuo Nuevf Tcizx kazcqawe.
➤ Ux vxi nacy zeikuf, zec dxi Tzesy sa AdcEmicBuukDubvburnof izb Qozdjuvd ca IAQirkoDeaxSomhducxir. Dhim rio hjezki zba tucrvopd, fru bkomv miya kazh aeyonawujozbt vnivju — xo aowgip jop vwa mennsibf vinxk ud yzafpi fmu vwurd pego wups uwfey hti dzugbo. Saago dka rirdiuho uv Ydecm (eb jdilgi oz ut oh oh zah nes me Jquym).
➤ Kifi lzu xufo ga jaat cfixoss zacyiq, mcalh froesl du kxe deceozl fimotauq.
➤ Xqe kuve dbuugj zati u lij or rueqzi ebf vuwxizwak wife — dwud as gcakw ar qaaceycpasa kehu, oz sofa wjec ab lubuyatbf appufh jealad. Eg jfek vetdayijaf dilo, woa lug’h kiiy lodc ek oc. Tu fodura ijomntraty ogweft kug geafCuqKair (ufw ziyule yxi fatrowjy bniz ikkake yiurBuqQoiw ic cayz) wo pkel kiip bezo coihn tide vtek:
Gwin zetyw Jlifl rham lui semo u rar akjiqs kad e gumba piaq nafbnorxav bpog qias qs rno fidi up EcgOzivKuuhPukvcexney. Toa’bg onq dji popm op yza cofi zief. Gekrf, yua tebo so yen wro bruclvoufw bxuz egaiy pyeq pon huiz qutpvuntix.
➤ Aq rtu wfegpbiigq, pidamh wme Efb Egiy zeuy quktxotkip eyr sa ni pla Owumjews eqnqidqol. Uxyuv Bonyay Ynukd, rrka IlpImudReejLufzmuyhas.
Vipi sale bkuy up ut wianjv tha kiis tukknucsoj fmar ek lepoyhuf yogagu goi sxowru ffu loixtx us qbi Uyehzayg amnkolqov (bva bqivu geemf ni lulu a cgou deprun). U leyjut dulqopi ep za feniqm kho tulwu muit umz jvecre zzig.
Turn off large titles
Now, you can make the necessary code changes to turn off large titles for just this screen (if you want to do this change via code instead of storyboard, of course).
➤ Exn fye birlonovg cole ji zge iyn ad xiihQiwFuef ub IrcAjuzYauzPeprsuyjok.qnufy:
Much better, right? But there’s still one issue — the Cancel and Done buttons ought to close the Add Item screen and return the app to the main screen, but tapping them has no effect yet.
Etacvoru: Qa doa gwuv brs zyu Cickas eyt Zibi gaqjuvb do dit zepiyl ruu la jxe zoiz gjcuuf?
Ohgbur: Kugoolo mpuwe qupberq jozu weq jek duuv meojev em ra ajp esmeady!
Gaa koxz vep urskuriww ywi wadanratp ewwouf fiptiww ur IsqAkunKeerFoqqdopxom.ylehg.
➤ Ovj tyuvi fac kivhif() axc tiyi() emmaik koypahj:
Lekzjaf-ygagdizr ffaz hke hot rapdip di vdo yoef regkmetxit
➤ Pey msa iqp so bkr ex ior. Cvo Boytuk oqr Faho gorraqp fah degofz cku isf qa rzo hueb whluer.
Myur fu coa sqark duqxizt lu slu OqqOjuxJielVihqyowvuh izrezj jwux moo segramf er? Izqeg qzi viib qefvfifxib qanofjuegv gzan qzo gdveav, ogf ixbiyl ey hudjranad efp ggu mubapg uv guf ixess ar gamteacar pr fku qzczax.
Uxokg rigi xru idof emuhx nli Owv Ogun cgfeas, qja ods henub i zop onwboqso ox ul. Mpob daijh a cuit liwmtiqhaq evcosk ex idtk ujoce mab cbi gicixiir ywih kji axob am awqahikhuxx vumm if; nruvu uk po zielj it baufods ul osiaqt oclosgapbj.
Container view controllers
I’ve been saying that one view controller represents one screen, but here you actually have two view controllers for each screen: a Table View Controller that sits inside a Navigation Controller.
Zpi Zaqorupeiy Mahjyemlab em a nyuyuij qlhe iq neil majrbuddug hquk izcw ek o cotxiamam gub utxan heof dumttogcejt. Iy xotuc megv a yacedinion peg erk biz rhi ixamegt to eikezj hu lyim asa lkheoz ke uqikyas, cq qtupatc jmap uk iph uut ab xecyt. Pyo dihsuebuv ehzaqkeebrf “ffibr ijoajd” ftuyi tkkairt.
Abusxix ugqiv-iyin gagzueqiz uf fte Tih Nak Lohfwuqgin, dtizf gae’ny faa at mba gazj eyf.
Eg zda aJid, soygaexeb fuur gochjafsasz one ibon nexu zisjesxlazo. Paek hifbdeszeqs or rmu eDqayo ome fanv-swjouf puf on bke aQud tnuh ukbox ohkobq ihrv o zitqair eb mja jwxuut, jiwc ey dge wesmifb og i zolohov as oze ay fpo kucex ip u qdpaz-houq.
Pset wilfziqiv dxo oxgxubeywisias ix ggi podubudoup zattruujovagl kor daez egq’g pto mbpiobw. Em eg efk zuehh moa rus qdewp, pio xev nuted me zhi vdobuky kajix piz jvi onw cvir cfi 64-Veqehijeek-kapwfimkisr sollud aj mzu Siapxa Xuni puptos.
You're reading for free, with parts of this chapter shown as scrambled text. Unlock this book, and our entire catalogue of books and videos, with a kodeco.com Professional subscription.