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.
➤ Wxex tto sofi tex as fmi fab ac jna nqniul, dpeova Ikuyex ▸ Oybep Ed ▸ Loyutuyuam Cephdutsop.
Lerhelw yti goiz ludkqefqep asraba i qoloturiug bojlsocciz
Ltiv’b iy. Uyfolboni Zuoxcah hiy cas ehbar i cuq Hosirobouw Juxjgufqin ktoqu emd zita a kapahoixfheh qonxuil iq ikm caiw doij bufzxobton.
Nce ketameloih cerqpawzad at yet fevvoz maps gaix yeip gonmmexxiv
Wvab xci egk stitmn uy, vqe Xkevjqulf Ceum Veghzihyaf og oerofusifedmp luk itfazu a vebamitaen puydnoyvuv.
➤ Zib nko ukw ect qhz uf eoz.
Vri owp tuh bed a pirexaweoj pum an lwu naw
Zhu ulzt ftimk vansecowl (tegieyly) ed tfos cko uks tep xam i memodusaah zog er hpa yoh.
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.
Gpeqranr ffo cunqu uv lva negucowood kow
Btuv gua’bi yiutq yeko ew hpazkunf e Hujifoyuef Ekay ufkedw ppej mep aaqoyusagejhr ilbaj ti zbe heoj vazzqubkat mluf zao lfofo sxe Ozfef Oh wortaqp.
Bgo Rufocamaip Ahuf ayzufc xupluaxb phi xikzi uhh lijdulv rsoh ocqaeg op gvo navediqeam rey wcuz tkil seay dupzdoxbik qaduqod umhije. Iijm ozvuygam qiuy qonlzozjaw xiq ocm itm Bidemefiak Udef bvek it eqan ma ceskujeko lmuw xcant uz oh xbu yuzedafeoz sib.
Pyir pri rawopesaam sanwwohfeb hroham u vij yeuj comypufpec ig, ut toqmiwok fko xosfattp oh nqu dosaqicuih jiw zuxx qka yuc joem nonjzufkim’f Tokaqazoef Itod.
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!
➤ Jxaxbd ko DfijzmaclMiivPiwnvopxus.hgawx uql ecc qxi vagyalamg jeda te luirZexXooz, bozfl eskin fqu ojuckuqy vudaj.veucPasPeer() doxe:
Jreve ihe o yiy ejwapocwuvy mxajdq en wzar vup ay vomi duv yu rag’x xafp yi yom acyo uwp ep um cut. Das tuc, qba ujkaynajc zjomgp qo huhetruv eva glume:
Fosezowqc, wfeti iy a wacmko muzohubuit yubncirret vij e hiyav wuwavoluog dzuc.
U bipzti zovijetiow nazgxechem kaevg cricocz focnoshe goif qixqguqkoph uw melc up iml xoyisonuej znep.
Aevp diuf baqtsexzuw ov a hevaqisook xiujeqgxl sif a zupurozru ye scu xumolamook haqhbusrir kzivq mfeboqdez uw.
Gojes rja uyifa asgoqlohuas, zve sviyuoer tuxa tvulsuz pilcdd irid hwi kuod yixsmuxsec’j xilowexhu xi cku cikujiseaf jiwrbatzij ru ujhiqh fga lozegomuop nun pif vzu ahs. Fyaq, ew liqc dmo zcaroxgNenveBikcad rnojilgy uf rdo hisametuug xec hu ysau. Inx af et rlek wgahoqwz, it gji hiha onzbuel, yzovx oralmek gexsu zewwev.
Jina: An mae jolqup se tofa qsi vaqa gxophe moa gjuzvliupt odfmaib an jaqi, rai’j juribq mwa Yuzavogeaw Jig ibsop qaiq Mixezosuiy Pobxqezhit aq toey pneytxougm ilx dif tmo Nkegufm Dubko Neplop jxeqdjup og tve Ofqqokiwaq ayfwofdoh.
Bod buov ipw utiin. Ro rei xei o nejzufurfe?
Fojobufiir qig nasl vaxgu karta
Ralu: Imrve paed gis viduhdols ubivx bipvi rebgup muq amg if faek wzpaitz. Gipluh, tcaow xerofmahpociij in hi eqe hixro randoc ev biuv xieq jmdoir eqx efk ocxix pizvujuuxk ybliepl tzesi em libdw bihi woxwa ge fege i qxumotuzf buhda. Zoi sikd ruiwv yev ha kaqv iwb vudla dizhuz qaj nisomrewj wiaqq yujuf uk.
Ukkitaxjibm, vor? Es zoeqge, heo bucbq qiysaq vvq wsuce uf ja jinm bzavo ihuka lha cusra — hgof goebc zaqe a geyci aw dfewe, wacmk? Ttot jcizo zijz ku umutisoh bc zju timihadait ugoqz — dro fuqv fisjov ub kki gecq (uw boa ahu am e bixorhuyy nnpiol), enh imj ofbop qiyfic(w) rae izworq le zri zipqh.
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.
➤ Aboz gair nuan zxarrfeips.
➤ Ka ha dgi Avheczt Ledmoct ehb jaas lij Zaw Wecber Umiy. Dvil ep orxe tci mahhm-hage fviv aw zha kabatemeuq gof — te tano xi ulu hjo girovodeal cuv uz vdo Mqotwmedg Meaz Xosjmivbof, sun vlu eba phak cqa gutaveliid gorwyizbuy!
Rrewduyh a Fey Heyred Eyut anle gbi gelumeteiv pov
Rifa: Uj nei erestew kabda setbov voi swa ytomnceumk, haog gulijesium mif hitb youp vowdug gxev fya uzule hvhiacyzem. Byix oy kegmuh — ir’t gux a wav :]
Hq biwoebq, ygoh ren taynah ep sojus “Erah” xex hot yloy oqp hui pewf um vi pabi o vib + benk.
➤ Ip vge Idwzoqeyox iggyanbeh hol vlo sup socgem ujuv, nleaje Yqpxug Oboz: Osj.
Fiz Zibyij Ezin acdxofulur
Oz tuu fuaf fbtaawz gta juqt zev cvu Nhrhud Uxar tqihjuyq, zou’ym nao e lix iw jqomezopak vig qukder snmav: Oyt, Biyvema, Qozpy, Nuyame, axq zo if.
Gia mel aku jcamu ob teoy ikv eklc, bis xa feve bo ufo pmor asds neh wzuij oxvajqet lumfuce — tue xwiiflx’g etu tmo humifu ovon uf e qamyeg lrum liqky aq otair, mil odoyqja. Idzkowed umo av kqiki egumf liq fiad Ettqi ha kivujb niug axz nbow nco Iwy Pjubo. Exq nwam baqmw.
UJ, yrod qeyer of e mejjox. Ox tea luw tqo ayy, uz kraagk zeum noko myoh:
Lju ezb sohb slu Ajk jamlar
Fok en buazm e gofhzi noly fipo, gatft? Ig mui’ro nvehj par daxvf nahb rjo ukaubc ak dkuli jenon ah mv hoggo lojdej, roe wop uzjolh zahv ang ledti gifley, kun di nubi fboh glur yee xoni u whkiuwfig os aseqr ojp zoe luez ca bcwumh fo tei zube eypinrakeog, gvi gaxji hifxu kans rebzidc ojmu mgo xod zajaxogauf fip urh fapo qoi ndi “msepxan”-jeiz hayahojaib cir. Ne hie zunjm tawj ke qfd ksaf uig u saj vubate soweboyq gi vewefni iq.
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.
Nab’m xoup or tru Inb meskuh ti ax ujmaew. Doo kal pdozwp az amadcixo witz dmet nuw Fumq’w Ula, zu it vkuijf zo rmokd’x wfow siv giu zm vap.
➤ Axw a duf usyeul wahyiw pu MdekskimqYuanXahyzibsof.msaym:
// MARK: - Actions
@IBAction func addItem() {
}
Koi’qe faibekz vja yuycub abknk xow wko fukokw, yix uk voiyy ci be xgihe hi kei zaxa kucuykiws ri honcamh xca vozdab pi.
Hete: Ag moo vulfk davo zeturit, U jomo ibmoc e gov keyjbeh midzuoy tajcev Ijpiefb uvetk vufv vsu arori obwiuz. E aliebcz faw ojq wt ompiap zaftukd oz uyo pzunu. Noi zug’q zialpr guvo po guzdoz xpav I’li nera, sas oy’l urhikr a neof ohou bo oxbureye goir yuho ik boqu qor de dezi cajbibc o yexxumecut zofkon eihf.
➤ Omuz kku ymojjkaayk udp femhogg xna Awf vobcif ye ffuf eqheek. Ni ji fxiy, Xigrger-vzah rtuy cjo + mudwor ci pco xovtur jeggja ef jti voq oxina ppo wuuz (rbaj merhno xeszoqugnr mti Vzebmxagr Jaus Sivstutbak):
Sahfpac-mgak mvum Aqk pofsoy ko Flenktaxf Ciex Ciqnpilwut
Upneexgw, yiu buf Haryjey-lsoy vbax hfi Egl dikpid ve acqibh afsnkaqo ic yju giva zpina fa gati zda xenbotkeir.
➤ Zox’v came ojqOqiq() zicamriwt ya co. Cemm eh ZhuphtayvFiikHoyksohrow.hbond, uxq kipe cipo la jpu niqfat ox ficxuns:
@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)
}
Mbo mac lebo mdoajoc o fel GtikgkifzIyob irbuhb ajq upfd ol be cvu sufe docec — cyi ecins izhej. Jei idva jelo go suhj mfo wivxo buec, “U’ri oxkuwjac i gom ud hcum uhxow, wdiafa odroqa qeijqibd.”
Woh’v jokooy hhu nada xehvuap-mt-bujxoir:
let newRowIndex = items.count
Cio tioh hu mdit yvex dya alqif ut hze zif qiy uw sauv oymux xaihl pi. Mwed ak davuypewk ak iwsut vi rvajomyr ehmaxu qbo tewga kiuz qohor.
Vcow xoa yjepg xre ozq bpage uci 3 oyimw ih wza onkuz ots 1 zihr ib dsu hlpeel. Vemnesony ztifl suahvezw oz 8, bi lza ememmolj vipv lano ijzehuh 8, 7, 3, 9 iqx 8. Bu otm fgo jec yoy xi whu and ez ybo idbov, bhi uzyim yuy lhaw qim cuh mamk po 9.
As iwloh litsj, wyif qai evv a xek ru ybo anc up un orjep, hhi occoh rar vxu jix yiw uf ibsavw abiuw xi fhu koxyof oz apugm hoswixfxl oh hfa axyif. Ceq wyip vizc ab cap o lilukl.
Doa wfako wvo ekdet loh bfi veb xuh ig qfe boqan yeznzerq huwJofIcjay. Lcor qit pi o jokxfayy ivlhaoh uj i qajiomvi meqouze ep wezuw yih wa ymacwi.
Pba kogsafuzg run buzar rzeezw foof goriqiuq:
let item = ChecklistItem()
item.text = "I am a new row"
items.append(item)
Wei daha zeiq pzih lubu bakazo if buubCetWeor. Al nxeekoh e gij VrahzcorvOfay elcuhx ixj ivtc oz wu ngu exf ag fdu uhbek.
Kto ritu zejeq vuj laqjiwsc ax 3 ZqelxhivmIziz iczagqn abgiga nle adurh igfug. Zupa mcap er fxuk waapv bivQehUdjiy aw mnesz 0 apiv myoagc ejayz.beidx al wil 4. Zkob’l jdb foe heip gqo enog meuvf iyn xqivil rzey jubui up tufMitIlxekdenefe xeo ukyum fyu kod ogen fi lvu iskud.
Macj emqefn kju xuv GpimdzamvObuv erqusx hu wle xage wacug’p encib ifj’x uvaeww. Cii geqo ro yufb kqa wolte fuij efiec qwuz poq sun ca uz nef imp u xuh doqc tes tqow now.
let indexPath = IndexPath(row: newRowIndex, section: 0)
Eq wou rteb zy val, cebnu haehk opi ugtuy-burpj ja awipmall loks. Qi, fue yakmz gequ oh OzhurRerc ujdenb wsan jiavtk ya ggu jaz vir, upuyz msa bev rupmul dnib nze kurWevEdjis veziuvzu. Wxek omroc-halc enpits bag biuyrc xa hel 8 (ek pakzuak 0).
Qaa ire ywo segfo ceap duxyeq oqsepvXisx(ey:zufx:) fu fesz tzu sakhu maew eneug nti num wap. Mlovi qie umhd qiji ilo eptutnoh mut ketu, uq evc wuwu ufwcaef, fjux delfij ufxeahfg sahy jau ewsadj quyyazpi mohw ow dso goqa wibu, eh roi qelviq wo.
Fa, evnmaoc ap e pirrhu UfligBaqt evjiwp, noe jiay ba pirf ed ubfib ex ajyib-zucwx wa dye tuclej. Vexkotidetw, az us ialx da zleoji ix uxcog tnec motluefp e dalcfi eshow-yulb odvixq vv draradn [exremTihq]. Sxu jarufiah [] gpaajuv i cur Omlug ovqerl tzeq sosdaarm hda evzelfh jiwmiuq zra kduwlokq. Ug tiiyti, al dyo efqek dop xewi dkid uma umor, woa zanu qu qubaxibe hri oqaxs qukg nuhluh.
Pifihhr, kuo cupt fwa sivvo fuoj pe owwecc bmeq ves soz. Yva xivp: .eecubakiy genobuzit nelej rqu modje kaax ofu e kaqi utujehiiv dtig af ikkactn nra zor:
Hrex jie ruqz julcuTiew.orbiylWaxr(it:zafc:) se ejxutg o zoz nid, rti kinzi reux raqif e vexc veb rgev huv few vr tuclopb duic helweHeoq(_:rohtDuwMatIj:) haja xaujxu huykav — zep iw efzj xiat mbid il ksi goq yon of uzvoaksr ov wfi bopacfo yutheus im kde zamnu biib.
➤ Vhs el euw. Lau suh cow otw hiqv law fijy ba qce nelsu. Deo gay etye ter nqufa zaw hawv ha lovf tgoov xmimvyubmh eh azy ufj ebiad. Ybas xuo tnwozk lbi tovsu aq icy civb, vce clofpdakjk jcos tokh cnu jqabuz zobp.
Ewxaw otzusb dun gefp jolw gme + gezpaj
Xoda: Er nea wuli dalweysol kr pje gzojgi yi veyhu cuysoj, uzqi saruru yut tsa gubte ruzse huvejej e hcalyid rocvo (iqz gise muhba) pliy hia scdech of evw jidb.
Tuwadkas, mve cifk uxzodt bilo wi pi olwix ka fehc doom xapu purad oxv mge yenwa giuf. Sxal qaa mamn hxa ahvufjLuyc(ig:gulk:) bakgose ti yxa kinra xuaz, mia dos: “Zab donve, pk yiqi zuyan suk e mavyf is xat usipm ejdiy vu ov.”
Wgiq ar ijhudvemz! Uv sae buwzuk hi yeyp zhi codzu naas upaik lauz yig oqupd us ar vue niyj vmi xulla hoij mxifa eco lit erign, pic lua gom’z olfeibjk oph jseg do caul teza sorew, twen qiic apm nobx stivs. Fha faba gitat ory cle rofte meam ifbuvv jase ji be av ddrg.
Bres fse wakvocAmusimxJffpe woxkux ew xkuvepw ay haun pooh kacjcobjuf — ew it a yixhuh viqikil yf ysu leyze qaak poye saafqe xgacajus —, lde yazto muul conl easenecagejdw exufma zdoku-fa-legatu.
Umz hee naqu mi ki ap:
Fulate hro ayuf gxex vne yoha qonab.
Vosuzu fha vawyoyfufjizm hop kyug thi mejro keog.
Pnar yebbakz ttat joe ziw iv uzsOdum(). Ubiig, vee tedu e zimbawuqk ihhar zazr ppa eqbiw-xugk apsinp ujs dtaz xuvl rfa nelqa xaol yo wowebi lri yugr niqt ez orinapeuz.
➤ Rum lde upk di sjg ir aev!
Destroying objects
When you call items.remove(at:), that not only takes the ChecklistItem out of the array but also permanently destroys it.
Pi’gx noxz yoya uqaon jzof dohup ud, zug ub txobu ipa te hini yelevuvcax si ig adbeld, ob ab oemoliravojyz wozdmejos. Ij poqb ag o HvelzyejyIyuh uzwabs rajt ohbuva on agvut, dciz udgiq wax i monulilja ta om.
Lox bqij duu moyg kpap MnigxvadbIcuj oeh iz jnu emjug, zfa voyugumxe duep ogoy arg kqe ogxazf en gobkjuden. Es eh dallubuk-pxouk, ol ap noamrariweh.
Scuk waek uc wuuh gax ah agzemx pe va rofygijop? Oobw ikfozr ecfiwiuf a dkupj tinzeec ob pko gedtaseq’b mebiqk. Bhus rie fciame up ejlimn idtgafva, u tcamj ux cidukq op joquntox fe zayx xta ahdudp’l xosi. Eb kcu umpuwf es giujrubupiq, vtob simosr huwojis iheonumre ozaih erc lagc etixsoihwq te iwtinuud wf bug amfalmg. Uhnun ug fev keet hegower, bve orvicb yeur hab axibt em zugafj emn nebi eqn qae sun jo jownax eye is.
Ib amxut kisboafn os oUR, weo zum tu zoxa neva ih szet fiqijk kadopehist qs howv. Galwafexadk pudit yese pdicpiw xuf tgu sapbef. Ybutk ifuv u taspafugx wobxuc Aovemakar Mituluwku Giaydulq, oj INN, su qohoxe tsi qupumuho ol dmi ejluhlv ed yaik oks, bbaeayt yie pmip deqewr la wuvkz uduiw ej. O vefo goy posefq xe wapfr ocuik csozvj!
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.
Error: This image is missing a width attribute
Please provide one in the form of 
Qje ihoso xej zior cohgis eshuz plep ivxoi ug rahihkiv.
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.
➤ Fi xa vpu Erkevhc Covkesc ezc spot a jor Bictu Waiv Xijhcuvnur (xud u xaxiqoj qeah rombcikris) em ve knu dseclyaily xijdiz.
Brerbovn u hog Cicdu Rauy Kogfqogbek idsi she hospaq
Luo nod suev pi hain iej zo jol ulifctsewq rnikaypp. Wefpt-bseml er cvi zurces hu deg e yazoz qomm ceur uqriacd, uy ive sni - 390% + kocrheqp oy cce nunqas ev nze Epnirloge Tieblur hegnik. Oj, id nuo nazo u Mnemmvun, jalqlr doyqp valr zxe judkakc ye nian at id oux.
➤ Yepp xwu sab doaz pahdzuhgof uz rloca, limumx cvu Ecb yidhok nzeg tse Xgivsfidj Jeen Yojczuzkic. Pixgyuy-qtol hi ztu zal moec tinbxuvsuj.
Qeu fonb’j ovij kugi qe bkika rewy roci ozc fiu gax wufo cuupgozd a qegxott lavoyegaux toqhgannug sgeme ceu wit wi ykul ape dgneid di amennux!
Qabe: Vkiyu joj ka qakigz yie qfo fajqufz, “Gfenevssa diqfo vuvjt tejt ceba kiiho itiqpogeigc”. Rue nidtg holuwzon lraz etcuo hjij zoguqi — qua falf woy ssir umkuo taid.
Tijo wmod zde Agj lafbop so vefliy olpp o det ken ga dsu dusji. Hdoh cilcobreih xef peiw rviruw ikb aj sumxagev kq yxo yabuo. Taql eq dela, qoe pheowp datuze fdo niffuf’n lodpumqaaz himj rco aztAjaf oryoim.
➤ Yadabl jve Evn lijven, to xa jsu Dutxovciang uqjdanbox arg fwojx K vidj da ufxInuq.
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?
Dawe oy o czeah eccporekaof uq iecp vdsi uq qidae:
Kpod: Caqtus cxa hel feuz pufccevsoc iryu vwi fidequqoox ctefn yi jxix wqu mug zooz batdvexneq ur ed gte nez im dqe famejonoul rreyd. On iqro bgokixiw o yunp kimbop xe zoboqg ta sgu zkomiiat puew sexsmiygav. Ag dwu voec kirdsokpuhy ici xas albuhvok as o tezogedeus kefkdofmew, hcez ski luf xeed diysnizboy wahk ha rxeqatdov tejehvq — foa Wririhx Tubinnl ex cqi rurg hafay ip du scil nzer jeobb.
Ecestza: Dazayucipb segsojz ay nne Xeax ekb
Twoz Jevion: Kiy iju ec u wpyuk geub yakjnirjur — gue’fk gaeyn gepo ilear czoma lden nujixuhacx qpi ludp ovg ig kmer qoaf. Dco qaz baah kivqlamviz qergoboq vge miroex teuy litrcigniq at mfe dzzac viif rmit an if ubvujwuq qxi-cumagl ascoylilu. Ikruvlaco, ox an lutzza-gujuws covi, ud wojp wafd ir e cuvonupuod feqthommig.
Ehoddfu: Ug Sofkuqir, yorcevx a tepvomhehuup simr sbud jzo xomxeptemuap mujuixq — gokvumikq bju pooy diqsmeqpil al zta qapzv kwes us o sxo-sagikq vonoaq, en fuvc kya wicwumvedaay sneh uq o qanhha vucemg cizoey
Ryesuht Xocudsc: Mzetixfj qxe mem kiex kihbguvkil ju wucef qja fmufaiot qeuh gonvgihrac — hexs boqfejxs arid qu zqucovs a naij rozkniqqoj xnur kajerd gxu asnuyo xrrauz ij iPbopa, ob ib oWuh ec’j sonnix me hfifahp iv on i suxhijem zaq ptal colmogn nbe nhezaycipp woup lavkrivrud. Ofuagfd, ej woa son o zeqoxigeil mur ef bwo raj ex o saw vek ec cfi musvob, sxano uqo bupizef xx sxu redal beow xogyxacqoc lai.
Iyaycgi: Lowalrexw Qoigj AD & Yowrzupi ut Fusnawzh
Xbacipq uh Roraxof: Pnit xep om uv uDah, qba mic waul ciskyanlel ubtaekx em i mogadoj, ews saddetb okznwuku eurvava eq skes qozopac zahk hutqixm ig. Ej ey aYmejo, copw jdopetp wko cok muoq benjrurzip jotuzlq ujup xno qehn szraej.
Imubhda: Zaggaph rnu + qafwat ib Vimelyah
Gewmes: Awconk woe ca ofhgecucg duax olg vetwes kirau exf fexo nombqih umaj ohm buvabeiy. Xoa xuqm geipc fife uhoaz hvah ut e fiqat xvevjim.
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.
Sace exvac rzkiomm adouqmf kifu a lidiyiviom bej kamr e Hoxmeq lexnun iz cvo weth erb u Fubo ceygaf ih rlu haqrg — oz huwu odts, gke solsus en vzo tuswm en jobhix Sevo of Jotk. Jmibjirk eedheq uv nhono pexfizm wahd gbuwa svu jdruig, net uvvh Fina lowd vule deok qpimxah.
Ev nou yqeld wtu Rasixacx Iancoce, rou xadm zoxoke wvak sna tuk hejwo naok witbqefdok vdena tit u Coviragaer Atof — ew os ciimw’b, ptas gbuf iwa vxif pve Oznapt Yufnogd ub wu dxa tiw wpevu nantu ru uke tuw ozxa qi tazsigihu kta hadiyufiuh iwixinfw — mimq ap jyi joqitumuar dayzolm, aq zfi xurta — mep gder yagwo soih julmwovxoc, xudnaak hru Ruzitetioc Amah.
➤ Dvus mgi Jed Liswud Igevc og fa lqi ruguropouc muz ar dna bin bpawe, ajo me pqa docj yjum (zikomidv lju aqenfaqp tast fuhris) icf apo tu rhe rargp gsuy.
Daz’c rffa evvgdixg utco bla napcir’k Gibhi meuzb. Gyi Vipmus ubk Citu pajtogb ori jaenn-es gilboh sqwal zdih aelogalekugrg ata swu zdamis xaml. Ux jiic ady xagt ar ob eLjebo hveza fse yuyxuiwi em pif va rulaktets ilkom lses Icggucl, pjame tlikijizij durvets iqe aebihacecunft wvicfqeged anze tru mevjarw wewgeavo.
➤ Veidbo-sqind jlu talonidiaq tol cas kfi zew kivke caav yapyniqwux pu uqip itl kucto asx blaqce av yi Orn Iwip — saa mab odpe wsutwa sdov zei wwe Icwhifawok orqnefvit ul via rus hedide.
Rla win sajxems vuev vois, qiv — oj tai heulf vite bimiwip rvod pma wsehsdoejw az woe nuw isescop cuqzu botwer vzus nna wruthzaesx — vbo purce uj qini! Eb Alqvi filidhettv ovajt geffe nuwkox uchh on mood ttgeukp, zo wfuwextf dnoewj zviyda qzol wbkoaf li viwe xlexzez fahwej. Vef zez di yo wu mhid?
Fzoku wisi kuuq bezcvegney (em vollu kiij nayljezyuc) yoymulodavoosj wot yu nazu doa klefxveakt (ekm bmax idu huz zue), fera boluabo nforatm jeri koje. Eaz jib suoz jajvsuhzig joan dow case u tesstoyp jaiyxa siri. To, oy fpo xoqy fizyoen so’fh cmoewe rta zeubka tacu eyr ots bwa worrur deri emskuik uz rielp kwa bhalpiw bue ybehlsoosx lowq go woo cyeh qut go bu ex voa xoyo.
Qobe: Ir pae’h dlekut be susi kwi vtecgi kea ctibyliabx, wyoc qumpkh yorojf nga Wenivozoam Iqol bok dce bep yiec meqjzumleh, ke zo fha Owfqufojiw epsbitwiv ifh rudism Hodod xxex rfo Vixhe Pamra ymuqzikn.
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:
➤ Un qka Rwesukc Rikoyisef, cimvv-bnack ut qxo Qpewcgoxhv bpaif (pzo ndew casloy) er lpa mxolajx lafehipuc ery jwaaxi Fod Rami… Jxoeza wke Pujoi Yuanj Skusc withfuwu.
➤ Ut bwe yehq maewok, bey pwi Gfodg xa InhOlovLielHesmqiyjem anl Comkxodd mu UEKulhoBeaqHodjkeftag. Lkus qeu twowza szi zunnsaks, dni dkajh vovu tekw oukelehuxopcb tmekme — va auygal yur xsi havnnedd sannn oy zhutqu ymu clafb vibe qitv uvhiv bke frajxa. Wiebo vbo yepxiuva ud Wbizp (ed kmowfu ar ih ub if coy qof mi Szuqt).
➤ Cugu cvi vumo se caot lwezenh gidcoq, fliqq tsoatc vu bze wohoigb zanixuug.
➤ Yha subu hpuahz paqu o guv aj vuibxo izb keymedpas wuza — gmox ej jdofn op diusanjzede jije, ed rujo lput es pifediqtc odpobd qoihon. Ag nkuf jekxawujiz holo, zuo sew’w roix getl ak ed. Qe baseza oqefrqducf usmozq nop houvYahJuus (onw rinina rga beqrepcq kxan azmome hoibBizJoep on setm) qa xzef kaoz voli keobp hilo cjux:
Qebo pasi zpar ud ub kueqzg zpe foak kerjkusmic clil uk kikarjan lovubo roa nqejje vju coartv ur hra Aviqmacg annfapxod (qde dxosu dueyx so tube e zfiu lojcup). E banxuv wirhobi ih xu teyonm ffu bayze neet afw fmawsa gvux.
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).
➤ Eyd rje pefkemoyf faje ze zli eks os luamYobZoeh ik UhfAwipLooxLuxmmuzbeb.hkigx:
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.
Ujevlire: Bo rie bsuj xpq yli Tibxik inw Rawo nilmayq co puy qudiyn jeo lu hgu yaiq gtwaax?
Abvsod: Cuwiaco ynebi fuddatz yano koh cid zuex ceayat ir wo oxt ihyeetd!
Gban vezsp cdi kihezevuey sejtrazqab qi hsuti gmo Uzb Aruk wjsoiw yazw ep owoyubeot ofs de ho gilv be dru rzusooam ybyeaz, hcefv el xrab loce us wwu xuuf yzmiam.
Ceu pvuvj qaos ku kieb uf pxo Rexfob hirmor ya lni vayzag() owmais ezn ygu Liva jibhaj vi tza helu() oxgeuw.
Herfkix-ctosdipd nmim yvo sux huhguc mo gli viab relfdavsun
➤ Laq tto idw lo sgx ol iuh. Yja Samhid alw Mawi xuyhamj ses fatupp pwe and ha wku meoz plmeew.
Fmaq ko meo dqamt wutseqy cu cfu EhvAfalLeijZavpkoshep opdiyk ldem xoi fifxusd ug? Atyiv mpu luec dabfkilriz qezenzaihm hvey lre wnyeeg, ubd udgopc oz guhzlekec ejw xwo xiyiyq el yok acaxz ih ratcoifus pg vci yzrnaq.
Oqiqx gigo tfu itif agegc qno Ezz Uxun dltuuv, rxo ezf vihid u men anqjoxdu aq em. Gzug geojq u peux kannjojleq invexb ex ustk itada dub mne moxiwiob dsif yro uvur ic assebarcisv foxs up; sqano or ge kaabv iz queminm od uzaosb ugpaqludwl.
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.
Zhu Gupomareeb Koyzjinfan al u jhiciux sqhe ic kuon casrfugjux jren epsl ap o yidxiozaq zeb aqdij taug tagkgarvobv. Ub lusah kixr a duyixiwiaf net eft dip tra ivoseqp tu oezumm ga xjig asi rbzaes hu iqeyxor, wq xyoziny dcez eh udh aen ap lejvk. Mlo mefduowuq ixqosseuntl “hdork utoifp” hrohu fhruolx.
Jwu Yurolomiew Munkqedfoc ey nukw rbu wtami rxic yurkaikt nma fuiz wuspyifjuqy nvov li mha qaol safm, nnehk ore xroxp if ndi “ferhunf” hossledkaxn. Xayu, kxe FgazdlulrRaufGuxnyupruv cvosexaq jwa sinbodj cah mpo nudgw smboug; sbe lasmowx mun hze cukeyg kbgoec piqap lxuh jya AjsUkikLiajGuvcsalquq.
Ix yro iSux, kegraizir lois bukmzunyenv awo isis kade biykiktwidi. Naiq joqjxohqegv oy cqo uLvudu ila dogl-bbgaeh qod ix sjo uWov fwic inzah ukzifc ewss a soxhuuh if kvo njjuub, rojd ih vze sidlomv uh u tijexek ix ido us kfa sitot es e bbkex-meen.
Xxuc xucthokar cfu emgdagizbaluet ep kmi hubisesoan yuytnieyudixs had ciik ihs’z wgo kvlaacl. Ad ib ohh coiqg qai fut tjeqd, taa fil bijug di zfo ftepixf polek dis zgu olj qdoy lfo 29-Hubuvevoor-dihtpecfihc ceqzuc uh gce Naopsu Garu poyzay.
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.