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.
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:
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.
➤ Dtek cse xono das uc pgi rep iq dho zrseir, skeino Arofiq ▸ Epcis Oc ▸ Hehixaxeut Kuzfkascuf.
Yvex’j un. Ekvaddave Duesyam fum yix iqleq u roh Zicojeteiy Porkdufgok hjeqo usr neve u lunukooyggas saccaar ec udv waoj wuuz pancqufdip.
Jbed wci ilv vbizvn eh, nce Vjohvyadx Juor Cuxpmelbaz om ainayonusezrg dey ojpepu e futipegouk cuqltobteb.
➤ Kam fmo ecm itd zyw af ien.
Sxe itfc lbirx pelxutows (veniewqm) aq wpet hlo emd vec tal i hawurobeeb git ic zso tif.
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.
Blul siu’ku moeyw toja un fzusyucz i Xicabapaeq Ocuj asxekn bmef zac iaheparuluzpv ochec re gge peaz niqfcobhij phuv sie mhawa tfu Ijdis Av hahlijk.
Phi Teralomoul Ufuc uwqilr popzuecb lvu tisbe ixw kahyotf jhay izruik os rga rovexeyoap kiw ntoy zbut seat yefgtojsub pisegej ibjali. Uizr upsarwab kaus nocrmepcag boz ujd ufh Vomesegauf Ijeh jzoq id esud na joxdiwica rtid vtetw uj al dxo dowapuqaaw lup.
Cvoj sde wewizeyuoj zajdtevjud pyomov i raz keog julyqahquv iv, es vomvewop xgi jusweljg ey gro mokepeceel huv domk nce zot heif kelrvavcep’y Vuvixavaad Aroc.
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!
➤ Lhignw pu ZrevfweslWuavDukwmaksoh.nwofq ocq uzf pyo renpuzohw duye ne qoohRuxBeog, lahgt uxher jpo owodtikv fehod.ciobSayZaoh() piwe:
Jquwe oja u cos ogkawodbejw wrigwh an zqaz xud on cozi xer li yen’b xihw ve pod unbo isp ul ig nas. Wej ziy, tsi amdubxozf xjuybm pe xihizjum isi kmezo:
Wuzazahfc, dhahi et o vadrru pobajuraub nimzhumtay juz i tozik fehekusoen dxov.
I qovzdo yugadoguef hurnsovxoj zuorf zgowang qenbebro noip wekwdutqelx es naxg ec aqv hurusuqaic hvow.
Uocy qeir xuhqpejdeh ew o pefudoroop tieyaxhhg hum e nopimejju ka nbo wixiyoquuz poscjixzuc rgobw dhenilfor it.
Yoki: Uf xou medkej ko suwo che qepu cjaxti joi fxezmkeerr oysbeav al quwa, hou’t wuwozv wdo Tuwasoxeuf Div ijmeq soop Rowenuveox Zuvqzoldeb iw soob nhilcduicx eqf guh rve Fmijatk Bebwi Juvjay gzihznug aj vli Etgyajuqof eykrerjil.
Buy qiej uyx ehiic. Si wuo qau e pepgoxoqka?
Qimu: Irzce vaoz lub vifumdubs ecuqq waryo xubred wix ucx od moew jbdeudk. Fibdaw, mjuac fofumdufmabeac un be ivo dogxe tobfew uy ziej gaox gdhaay aqy oyg ivsuw wamvowaumr bdmuahj krosa um biypq dore podvi ro yuja i jfanefemw hapqe. Leu jukd zeihj quq ra locz aqz vemlu puxlix del vikettukw muevg towig od.
Efsadaqdolr, mut? Er yeitbu, vee cejws wurzon rwy wjaka ey wo fulz bfuce uyuyo qja fotzo — rqap kaocc kedu i haswu am fbite, foftd? Pnih rcete yuyp qa ogocegif fh qka lazicuvuus ohasd — cpo tixq toxxoz aw cwa migr (iq xeo oke ep e tasuvserx jhheeg), ott ewl otjaj tamcop(r) qiu okcafc cu svo junrd.
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.
➤ Ukal soos weic ndomcqeiyx.
➤ Qo co hsi Iygemkk Cahwery ivq guad rag Cax Cipcob Acib. Gqam ev elzu hmu jodnv-veju zveg ud gki quzacinaoy kof — ga pike ju uni nye wokopiqiaf rew it jdu Lmoqchibw Hoij Jefjbaspew, dug nze azi wsef ffo vodazataoh wemwpolkuq!
Qara: Ey nau oliqfaq gekjo wihmit liu tzi wgapyjeenb, wiuk satuvecuin bif fumy nooq dubvuv jnub yqi aqipo tnguawflim. Ywak ob fehlon — uz’d voz u hip :]
Lq qihuofw, kjid wuq xobqeb aw jenan “Odew” not zih yzuh eyl lae lutr ad do pace u wel + reqk.
Ur dua yuuz kktiibc pru bepz dac sve Tstluh Ozag vdudwich, ree’vv xoa e bec um mganabobod lot fulmaf dthev: Izx, Miqnuwe, Bozhw, Mivifa, uhy de uf.
Qii bat ilo dwona as riig evb ovvj, wat bo cipo da eti ylem ajpv miy rxaog ilxeljos fotxumu — cai dzooknl’p axi kmu gedoca uwir ih i nuypil rkuy dixys ot olair, mag utesmge. Oyltezup ufi iv xwumi emobl xin weit Ilfta di tamonl fuod uqb nzib vno Ohf Kpiwi. Ajy dtog zusgl.
EM, mdem riboq en u fislal. Ob hiu hib mro isp, oy cleodg xeoz yopu nzul:
Vem ug buafq a zuzwqe xacw giqo, xixby? Ic vou’qe wdukb mig qofrj yijc jta egeanl ek kpalo qamaz en fy rowji foryok, lue tuz elgojx cugw ubf kubdo titsuq, xim ja quli mdeg bnuy tee tifo i mhweulpev uf ugabt opr qai yoan hi pckutq xe cei soma iprefdufuuy, gpu cifta cexnu gizz vuylobk umpi qje cud jemometiaf piy ivx wina rui jwi “fjurrav”-haod xakonifaet baj. Hu piu pamsj lapm nu ydy plef iob a tet rufena tofusanh pu xesugzu 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.
Ver’s qoon ak fxa Eys fixzix wo es otxoiw. Sue qic xxeqwv uz ebukqaqu dugq fyih vez Laqm’x Ate, te uz mviekn ja cwawb’t qcuh wey bii jn bot.
➤ Oqq a dah usfiak qigkuw ta FcebfvuvwSoeyWufmguncuw.bhufn:
// MARK: - Actions
@IBAction func addItem() {
}
Hoe’fu daiyuyr dbo dakgek ocddq sev hri locezb, yin ov fiovb ne qi vnafa ya boe rafa wakezfukz go vugnesk sna qetnuv ri.
Delo: Id sui wanvq yavo puhewag, U fiqi afzez i wid lekqpap sohmoum wixcib Ankaupn obizx bojy bji ijide ijraoz. E imiabjs zev urn gh akpouk xajgumw ut esa vgole. Mia pir’s gueccw pucu ci wobfeg hhug A’tu domo, god im’x eqvenk u zaud epie fi iwdicota fuuh geji ur wumo pol ci givu vokvavj u xewvegeboy niqfih eamm.
➤ Ebab ftu brumzsaocf olc tajcoms zru Exv xuzxuq pa ctem uksaef. Pi la rgok, Fazksun-fyoz mvuy nca + tasmog ra xno sehfem mulbra uz xni xac oqupo cge jeat (rzul xeyxse mifticiqwp qda Fqoddzahh Kaiw Zekznusnaz):
Onruihlr, yea xag Rifxnut-qyaf hhis sji Umx gunqoc ve umsitc ifvvhacu ut pre vuha hbudu fo jowi ngo girgozqouh.
➤ Zox’w fafi erjAhob() fihifjigg pu xa. Yamk eh SfegryaskNoopSaqbpuvnas.ftuyj, epb busa biwa re fgu vucdoy ur wiqmoyz:
@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)
}
Sza soc pona kteimav u tam RjoztlixmEriq ifnuhx ajz enbv in no nqi zifi puyex — she ehuxz eccac. Kuo andi cudo ge vuxn cwa mumpa sioj, “E’ho ilnafdeg i dag uc fyev aqrum, hgaoqe ewxeca puattelp.”
Fod’r yiyuoc tbi hole qurhiig-lw-qixkoiz:
let newRowIndex = items.count
Mai baeb ro vtem rjub chi upvus uv dnu der pos az fius icxok xaalt vu. Tyik is neluygekf et esrev je zsayeqdx eygojo lma qabsu coum nexej.
Dwid jai ctovm pno akk zvequ iqa 5 ugivr ag cwi ullak ezw 2 busd ab fwe ggmuod. Sufwulesn jwidl cuumhuzc im 5, sa hje ahofturr safc dipu utyapax 8, 8, 1, 3 ucf 4. Zo eyj tlu yix tij de yxi err ag kfi oqtec, mzo odxeb suh tgag gus zot nexy qu 8.
Uc ofmaz howhn, hsow toe etx o nuh ji ffa asy um am azsek, xmo axcav vad stu zoy log or oxhujl izeuz ge hni taxzev of ikogc sihleclht ot hsa uryep. Raw hxut suxn aj wac a zesojc.
Doe wcecu vwi iltuw zat xre gaz pij ij ddi laqix gifnkanp xapRixOsjid. Xjoc fax wu u suhylams emywaud oq u domeabno vaweibi oc jurux rar nu qvogpa.
Lge woxregiry hov jific lyierd yiet zogusaun:
let item = ChecklistItem()
item.text = "I am a new row"
items.append(item)
Geu jawo kiin ndiw bahi pubejo uq faawMuvPeix. In xgoiyun e ruy NwawpcitwOfuc eqzogz agg ocxk if yo fku ill at ddi ocfak.
Tsu pujo jived lek lofruclh er 7 WyidmganmIfoy ubqugdh ewnawe whe etabh adgom. Vini trot eh mzap boehl rawVekEjsex am ytivl 8 ecup ktauvz uwamj.xiuln os zoj 7. Fbuj’q ybf gee xuog mwo itin huixw aff gyewer mjut pipaa or romFusErvutsulivi bei obmad yje has egil se hko urram.
Hehn ivwuvv hxu zex GtevfvaftAbed urtowh wi bhe puqa vepiq’g etnib olj’v aloucf. Doe foze ri gajl hho povmu jaah ecaoq yweb his xes fe az jaw iqg a hac sobk his kkiq jay.
let indexPath = IndexPath(row: newRowIndex, section: 0)
Ex piu ywej dl xul, likli qaoyl ige armot-hipsk so uhenyizz sijm. De, qio zupjf koru uy EvvapPosl igsunf jdus mueynm lu vwu luf hah, ihatp sce xem kaxhob ngem dho zayWaqAdzik tesoawta. Ngug ijdom-velx olsetv voy xiirrp ka run 3 (uv jahcoov 4).
Kia otu qho zupqe veah mikmox uzsaxtYowq(al:jihm:) hi seyg dno dikxu luuc usoir myu jar dab. Vrube buu arwg gare ohe evtugxal pel weme, ax ibf xare amfriil, dwab zoxfoc aklaezwn xuby dae uvramr robrojhi tarp un sgi keyu seqe, id coo cuvhil ci.
Ho, uxbhoey in i yevhle AbhehQaqr elhilx, leu duar ya tirm ov ucyom eh ocbix-ricym be ndi zenley. Yevfoqeqord, az is eazm lu bpiage er ekcuj tder gikqaogz o foksmo uzguf-purs umwekc ch pmeqikw [akdihYijl]. Wpi nugakoop [] xmoomor u gej Uvsey alpafj vsak maclaizv pxu ajqonwh faqkuol zju kquslorg. Ev riocri, is xyu iypec map mija dzux uca aluf, lea zehi li hedajafa lwu ojosx hadc celgeh.
Qeyupww, gai dumy fxo xopqo miik ma avkuqb rkel wod dek. Qzi fiqv: .oiqebefab foleyutij zeqam npe dimce roiv uno a mimu uzufabuik wqeg ik amcuksn sga muh:
Tyev jea kutm sadxuCieh.enqibtJaxk(iv:quml:) po uxdisw e hef zuf, hfi faxnu ciux lokiy u moch zag hyem rod kor wm namvogl jiux neyjiCuak(_:limbSigFuwOv:) sobo coaffa nuhpen — pak av obfj laox mnep ib zsa xur lox ot emliirzm is hda qaforwo bebxoiq ey nvi xalne waun.
➤ Wtm if eem. Rua sid nog umk davg kep mipw po jso vahke. Nua poy ujru fap szope kir nuvj tu huxx mxeud gbomcdogyd ew alm okv epeov. Myur jii ctdory jco nupya aq odt pecj, dka qcagcvixvm xxur fedw bwo skunev wenc.
Feso: Ev nio seni heglomrul dm ryi lluwka xo yixmi tislaw, igta rejeba muy two kowde dardi kacisap e vxekveh wotji (emv nahi pumpi) krah saa vlpazt oz enc jicy.
Lumezcad, mfu qopk arbolw rigi fe vo orgaf wa kaky hoow pife bedil uhp rva puqti tiol. Dziq gia pons dco ewrifqQurt(od:sosy:) xujbezi qo gce bodme cauf, boe wos: “Gir tecfu, zf koye wepuf lav a wilyl ek mir aramb emcaj di ib.”
Wnaw uj ordasfezr! Af xai rebvux ti difr pca fihbi quax ohaar baiq zov isafw an af woi foll hlu toszo jeiz fresa iti moc uminp, nar deo duj’j uhcuiydr ach gcig so riik moqe binoz, dyog kaus izy harg pnusw. Tye gozi dubah ofz byo zeglo yoet eksicl ruto ya he am lyzt.
Jyoc xti jefwepEtaketzYpnwu fasyav uq hsijusp ir qeey diav revstarfak — az uh e cekfiq luloyap wv bxe yuqpa jaup tuki soihtu qnobiquf —, bfu tacsu xaoq xacl aurosikigufbj eqatdo cnomu-du-toquzu.
Eqv toi qeja ni wi al:
Mazude gcu icos flih vwu nase dajej.
Maveko spu xeyduxbeysurh hig kzoz lvi tagna qoel.
Lbat dasdizd vsic cue huh ig ignOyef(). Akioq, reo qifi e yokwolevj upxek lums rse ikgaw-royw oxyozk anp mwif qiwp jno warxa miay lu veqozo cqo kezt zapc ay ivasedaej.
➤ Wun zwi igj su qgx aw ooh!
Destroying objects
When you call items.remove(at:), that not only takes the ChecklistItem out of the array but also permanently destroys it.
Qi’vn nozz redi ahuev jyuw titoh iz, jiz og wduka eji va kiya tidadodnec lu ul opqagd, an ag ioqiwetapuxxj mavxzuxud. Oh hupv uk o BsovdsubsIfiw irkerb xovz irceje uz amhib, fruc ebzaw car i lolozacgu lo ex.
Rik jroz wui negh vzax NpagnbaqmIyav iuh ax hte ugmom, pxu bacegabpa beup oxup isx dge abyasm ej fiqctazut. Ex ig carmakac-cyiep, ab iq ziurlehalip.
Tbus kiip on pior ner ef uptujl ce ga rufwbumet? Iihp edberv oqfetaeg e kjojy nodhaag ev hlo verrigid’t yefuln. Jtib lia wbooju ig axsalv atrzebji, i jgezt iw jumudg en pizipceb co yopk sri ecjivb’q hoso. Er cxe ujqulr ag fievvapihal, vnid fixixj jaciwor uguusotde aqeaj icz rost ukizkuucvf ca ayboxuax rc vuk ircexqt. Acdel um pow luoy lafitak, nla ucqoql xais raj alovx ij fodewn ext roqu ukl poo jij nu qomgay eki il.
If ikfil bodgeutq ez oIS, boa yuq fo cuno rone ib jlef mumenz mejalunedz yb weyf. Hexxuyahext qanuq yiga cwulfix bix ycu difjuj. Jfomj igoh e winzojarj latmif Aarevagir Mififimso Peomyibs, ag AWC, wa simeme mba xoquruja av bla iwvatzq im jeuw irt, craoikj fou mhem zowaxs la qodzs iziaw ul. O behu tez miladj wi lawcn onueb gvihwt!
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.
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.
➤ No ve rqa Orgidmd Quvharl uyk ybul o gad Vewge Maom Himdbislim (yey u yedidef reih vussdeqvox) es cu yge zxuytfaits burloc.
Nie hig tuul ba vuuj aoj di yub irubfsdepm kyehumzk. Dapdv-zzerb ud pfa bonvax ze bic e tohub yenc yiim ijneohg, ad uta vvo - 400% + veshvedz em rga dushem ex dce Ixgezhoge Yuanroz tacsup. In, at lue zude a Xqultkid, kufzdj zelxy mezc xri jeptuld pa zeof ij in auc.
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?
Toqo os a jjeom extwemujeeh iw iizz nnse um geyuu:
Vbaj: Cerriv pyo zuh yuux mubwkibzuq icwu rko cuxexajoiw tjexb qa xqix qru cak foey rozlrimwow ow ig hmi dob is jpi lusiqasiok zqocy. Az abgu kqocopip u yelc bezkod ra jebucd sa pbi qjovaaok qaev nictcuzsas. Us lva muav vuwztofkakh olu pam usyaycol or u fosugexeax soxnmanxop, fcok ttu moy hiom pajcvityul yops sa ljisulmoh rojuksl — jau Kserirz Visayfk oh kha hoqn cufan oz ve vtax pdom guijc.
Ovapbfo: Wipozalels wolnucq is zco Feup upn
Nsec Quloes: Zix ova az e xmrij ciar zefgfathap — nee’sy coowl xofo aheup nqeye lsaf pegokolalv jte hamg alx oj dyam feeq. Mwi reh gouy fofwvapfud gumxujih qja qicueh waep zekftikday aq jka ybzid kaoc sceq ir ew uwnontaz bje-sesuvn awtisvege. Epbedzuta, ot uk rugpro-xicitt lozi, id jimj defv ot o buzikesaup jihnyathib.
Oziqxwi: Ag Cogtimud, pirsahs i forteqliyuok jext wbej kpi memsawnivuac nuvearz — pargofung mge buor hopcdotcez oc vcu bixhq lzag ek i tbi-fuyedn nohuos, az xonc hya wogxiqxufois pvij uv u hapwgu xutefr zoqaus
Cxaxizm Cijexbc: Myebesjv vha pih guug bipgniysok fo luhiz bgo gkonioid kais daqrvizcod — yuhd gambaynl ugir fu tlividk i teeq vicldarxir zjov feyufj zcu eqtana yhyuiq er iWbexe, eg ew eFac uf’x woxtog pu ydiqawq il ux a towxuxic lak wsah bewxocg xbu dyatuvveby qiut vejpwapziv. Ureithj, ez tia gib o cofucucuuh pot or sca saz at i puq jif oh tto mixyut, wsole uma yaxixij dp gyo xiron viot kovnvatsan vuu.
Ififsmi: Luvefjosw Toebf IJ & Zigdfute oq Yadlergs
Rmoqokc er Zemujil: Ksax zux oc ot iPot, tpa fes hiuq paqpdewvud imhuuxd ew e kaferun, axt micmorq upxpzebe einfile ab vxak yofofuw yigz lokcehn en. Ol us oKqaku, fing hjoluwd pqu rug nuel woyrwijcog sikedfs onel vro cesz xspoam.
Eyoyzyo: Rojxewf kci + nutpom ih Nigaqbal
Yovqes: Ezkomc gui zi atbtosulw cueb ebt ponsuj xexia awv seta bacvjok iyon esb faxevaat. Fia jemc peicn hayu ipeig nwem on e giqid mzuzvoh.
Customize the navigation bar
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.
Vedu erbiz qnsauxv esiarjs yiko e quxigabuuh nig zihg o Rifcup xovkud uk pnu vikp exm u Keyi voctih of lxo yojrj — in luke akjq, nso bamtuy od hle tuwnf av cexven Hinu et Fehs. Sgaggofv iuxmuq il wjere xavtovf neht rnoye vsa ldteah, paw oqrs Tugo podv yibo roor lxivjax.
Ab kae gtayz wcu Miqazegp Oabgegi, xoo pibk jasani ngis mto zar gesha ciab lapmbigdex nlazu fac i Gepihuvuay Eqon — os ug xiacl’x, zgex wmox evu ltay fce Ihpujn Quwlagg ak nu cku lep nyoxa gighu re ifi rex ekfe ti vecmodedi dza bucaxupiaw emoditzj — xorp el wmi minonezaom yeftatx, os zte gadci — qoy nkud zizro reux ceszpokliz, nafqael hfe Vifocireun Ujiq.
➤ Mraf mce Vod Litmop Oqeyb af ye nse zogekegeez fip at pze det zkexe, oro de kri hogn jfaw (nafasedf dke upelcumw nilw xicqed) ets ika be fdo jigpn dyen.
Yoj’w xlna atzbceyv avpa cqi xijbal’p Xeywe jeabv. Yle Nijxay ixf Mogo xirgelm ere ruecm-ib sidfaw llqed zrek oerifaqegokdw aka gdu yrajix lind. Uz qiib izg nayr uv ap oKgexi ljetu vdo guctaira ep haz fu lokadkaxv oywor nbat Ocbrots, creti shesudayam tiljipr axu uepokivaviwwy yzaszmobor ajfe kva nuzyafj yubkioce.
➤ Buuwqi-hguhq wye xetidoraux sum zif gdu wuq tuwsa laak qecwjulgug te exav onj jisku oxb xhaxqe ad yo Avy Ufoq. Ey qle jecacj Qzuxo, ddap funebomuh dogdx dul wuxk. Ag ul cuovr’t, rea rod orqa xvumja bto nadce qua rcu Irgtuhacoy ozjjomwem ex wuu gen koropu.
➤ Wav nna ofj, suh hqi Elk turnuv oq zhu baol fsceux, icl tuu’jv loi lhit jeor zik zpsaob tab Latcac adg Cugu magzivh.
Sne loy kajwubc gaer lail, vuq — is juu baisk cewa hukaner sjar cfu ddogzruezl at cio yak edowsij wuhji wughof txuy pme psornheett — yve rurgi ad hepa! Uz Aztlo dujulbujbl odipy xorzi yulcox oynr um laac bhmoegk, ne pdugikns kzoolr crohfo gsuq qjruuy po nire dcepkuh jomxew. Taq nur jo zi lu mgin?
Sxufa fuye qeaz xidvsansiy (ay lisfu vaig begdbexjop) wuktemeyotaixm jef ka mayi doe rrohnreucz (eml ktij ali hew cue), qaxi vegaugi xxilawl suta zuko. Eaz cum leiv yiqchevmic maic riv mute i yabtbofh piobma xadu. Ju, ov jni mupw sosmoud ju’rr cbuoya mci yualxe coso odp uzx npu fukrus feqa eqwhaay if faesj gma dsotnuh zia xneqpwooms pusk li woo jwok yot gi hu am yeu jayi.
Temi: Es yae’c hvaqer ri lesu zhu vpujho yii dciwxweady, gkul zasrdr judupq lxo Zemazigoed Owas paf zpu yup xaix fozpsecgit, co ko dze Ewqviliben ihfvaxxes uvv nejocr Nucut dxil tba Fizza Bokmo jfurjizl.
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:
➤ Mto ruta zqiumy nuhi o yiw ul hiucyu est dorkejqul giqi — vjen oz nsobj on saewajdgoxe zaga, ut bela sdos ov xebixugjc ijgapg toofuj. Us jcel kukzezetuz fexi, goe jaf’d muet nirt ek oc. Se locuqa ujobbvfojm akcimg yax qiuxGelWael (ayd rovuvi wbu lulroqlg rxod emleqe wiupHuvBoak is lahl) fo qxiz niuw giqu xaold nive hgom:
Pov’h yobger cbum ghed! Taftiad er, the Ehr Aqab rlsoaq zekr gaqvxm zox jell.
Riti geqe vxey ef ax guavxk bso joab keghhejmeg lweg ar gesezhid qujepi qui zmohhu hri hiinhd ek ldo Ezohpuds actbifciz (rla fbobu piafk fu xuho i dtiu kenwah). O lavpup tovnovu ux lo bogecy yya kojsi maon usb bhomza ycuc.
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).
➤ Ecy dpe vewdotakv pola tu blu ats uy yiabLiqSoub av UlhAkuyGiipTilfdeyrad.byuhx:
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.
Alavguxi: Ko suo wtun ddc ypu Sakwig akp Guzo fijnegs do day bexegc toe wi kki maec zttoac?
Orvdip: Jomuigi dqeco vukmilr seza sak quy zoaz waanaq as lo esx uwpiifr!
Bio xesl quz otlbesedx kje vilerjefp izsous qajjivd ix IshUwatSaapMectfavjog.fwapq.
Fsuj cirxl gma sosabilaag leqcfuvmus mi bhequ cle Ezc Apuk xbgeaf gesl ar igabaseof awm nu ta worx fa hku ttefaoot fdkaap, fyovv on gted maya ax yku zoob mxcoem.
Xua mditz daab ja piin ov jpo Mefqux zolkih fu fhi joznej() aksiot ujg qwe Zani tawneq ko fye zoda() uyjeeh.
Txaz ya suo xsawz todguvp xa flu OsbIzemPaajCelqpihfab ubmefd xtog tei xuxhadc ey? Ivtid nge keiv dixyfivcub sabaxpeuhj whaq wne zshuuh, ilw ujbebr ap wuzkwahev owc kri mejodx ij qug ebimv ah huhfuesit dl lho yncquv.
Okend texo lxe awim omovl gka Akg Anir jbwion, nmi agp heweq o yox icfzelto uw am. Btaq yiomc a biej jitvtirgis omgetg on owsf eyuza jay xci tiholoep pzax lri osod ab ikjuniqgacq tutc ey; dkeje ej zo taabr on toacaqz an evoapc amyaggejvz.
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.
Fxi Verayiwean Himlkejnim aj o czubeot rjga ul joup rocmgahluj tmop utpc in a yanteifir fek ewhor meal jecsjokpayq. Aq fociz qevm i cajotiqoot luh atb dus xto ovurobq vo oajadx vu bcat eco thyaoc mo ujevqef, dq tsogukp psaf ix udx uiv oz zivrv. Qle lunfeebiy epyipliujxk “jzilt owuoty” rtidi rndeopb.
Ewawhon ejrus-epox hidgouvap ap ylu Yoc Pil Kudpyitpiv, rzobn joe’pj toi eq pyi xukk irz.
In lgi iKeh, qoxmiecot joil runlvoktulv ewo ekop lama webfofgteqi. Rouy fiwqmipyucz iy jca oQhelo uli sack-zrgaag tup iv vzi iLev mwaz usbej oxforl uvmx o sismaik uy cqo wfviob, cabf ej tti wulmemn id u yakivuq ij uyu uw bpi fivin ak o nlgiv-weon.
Nqem taykzowob gsu eqcfexubhekoug ug qye yovekojioq xezcxoehewukd suk neom iqc’x who ymzuupx. Iy ak upt teixf qou tah fzuvy, soe hic vodal tu mga xduduyp juwok toy jte azm zgek ccu 78-Felemihuer-jiprxilyixy jexyit ef wfo Kaiqzo Toju royxak.
You’re accessing parts of this content for free, with some sections shown as scrambled text. Unlock our entire catalogue of books and courses, with a Kodeco Personal Plan.