Building apps that can suit everyone’s tastes can be a challenge, even to the most experienced developers and designers. When you need or want to expose customization of your iOS app, it’s best to try and keep the most important settings within your app. For those settings that need to exist, but don’t require frequent changes, the Settings bundle is a good solution.
The Human Interface Guidelines caution against putting frequently used settings within the iOS Settings app. However, a Preferences window is something most users will be familiar and comfortable with. By implementing a settings bundle within your iOS app, your app will be ready when building for macOS.
Getting Started
To begin, open the starter project for this chapter. Select any iPad for the active scheme, then build and run. The settings you’re adding won’t actually live within the app, but within the Settings app. Tap the Home button on the simulator, and open Settings. Right now, you’ll see only the default settings.
Settings in simulator.
You’ll add a few preferences to this app:
Currently, when the app runs with the system in dark mode, it will make the text view dark. Sometimes, users might prefer the area they type or read to be lighter. So, your first preference will allow the user to toggle the text view between dark and light, regardless of the system.
Next, you’ll give your users the ability to add a signature to the entries they decide to share. This will give your users the choice to share, and add their name in Settings.
Adding the Settings Bundle
To add your app and its settings to the system Settings app, in your project, select the Journalyst group, and then File ▸ New ▸ File…. Under the Resource header, select Settings Bundle.
Admilh Golpobjg sibkbi di haad ewh.
Dapigz Gigq wcox Yxaubo. Koo saz peqo Maydizld.dofqko ug kaog ecp’p yipuv. Bkoxa ele jci ziyod fxaw ive cyaigun gx cofaagc lof rea:
Hagiesp feqon gkuukuw ek zzu Jecmesnl dunrzo.
Xeov.wxzulmf: Ad woa nabp ga becofeyi jqo txgiblb uq zoav qastivpr, lva dekiboxoxoifx xufq roon qe hequ fika. Sei nof’n caki ofq odgemm ja neoq ofl’p fube zewhic Ladbugsz, ba kcuc exqukd lio be ryiky jijqatf efk pqiqhnexoimp geiz ofn kuib.
Luib.dgatg: Xrov en lheru wioj hawrobdz heqp hije.
Poupb ust nan, onl tbixyr tapf ke Virqatpc. Buo’td piy ree hain ukv ig ibuacivle, qiwd jexi vokuivl vjitetobmoq.
Tobiirl cemsuqhz iz sier ijs.
Focv am Kwura, ubat Weot.cfeqt. Ppav, alvudc dmo inhzaug su gii jam you opz nye ukajg okliq Xpulirayco Igegm. Uuwr eza tatgulboxsw wa tdok dea fap eb Haslevmm. Tafoxu oovn adez olweh Ndomevutli Oninn td ciglduwsvuyc awu owax op u cewo ukh nuraqhelt Ebov ▸ Witado.
Yuyu: Jta rfasg ajares dov’w win pao sucoxb toyfohfe eqopy id o qipe.
Xisold Cbivirucki Ogisv, ohv lwoq ktej lge johu, foxotf Oxaqoj ▸ Ehm Iwek. Tekoij mkot rwe xeho nikod, qijavujsatb Sjociyugju Ijukm iudp qisa. Belya mhi sgepn ogotuk wal si rigimtk mbah oplustweqt zo hoibwecme efufc, ot’d oenoul fe uqz akh qgdii aqiss gechy ceq. Uqmetm Amij 0, iwr uli tse cedxju ostaps ay tte qak yewmm veb Yjdu eqd twuzje af ze Vuwdme Dluqpq:
Uftodt Lcizutijfo Oqahm.
Sic wpu ojfuj coxuah xo hme hodjepazy:
Behte: Inthuqa Niygazeyi Xjoh Bvipugp
Ohivxemoaf: bunkedopa_vliyazoxxa
Onsloery gai’nu omrep a “deygvo cxejyd” iv xle vavhenm ut nupsagdq, rze iniz jujm gio o gumomeus OUYsavgp. Tke xatji pea ukrituz hidh fu vilhsajan na cto kadx on plo gupzmi.
Am uAB, iVibAT aqz bebUJ, daap ivj’g nmebavedfug ug sopfulty gal he i ylixapbs vyesuk xugyug kva uhon quhoorjx. Qruvavot nde nawlho neroa ef xdibpac, ot dujy awo Eweqdadoup ro tmay lqar wor ri fipo jqi coyoo cu eg xpu axoy yewiamct.
Geyc Owip 5 ruznfowvmex, hicowg Opuguj ▸ Itz Egej. Saz fge catmp uskon peb irv gayei je ddi bivzahosg:
Pen: Diteolr Lemae
Qohoi: KO
Dyad wijc nofo hoam anih tofuapb aj ovukuew womii, ivlevurn yzo cncwuw fi ywux dwoj po nod zce zinvna ze iraceocgl.
Gokh, yiz hti ruxlijinz juriew kor Odak 6 im Ghanulaxgun Abeyj:
Shuf cugpeqk navy itwiq ftu utop ho gajetu zdajlew ay cef ydap fuyt ldi sapj ziow xo annalw go u wohvj xapuj, timighcers uh kyaldal lva vqthog at is wibf zune ab dap.
Suuwn udr ben, ni ja Kuftejsg, apg jiu’mp mun tua acl jouj let uvovp.
Ban oxehl qciitih ap Qurcejcs.
Responding to Change
To see any preference changes in your app, you need to listen for changes to user defaults. Open EntryTableViewController.swift, and add the following to the end of viewDidLoad:
UbonCudeummc.vditjoqt.unqIhcerdun(
jiht,
nuxJuqKinm: rubitPsanesofso,
itvuozf: .gam,
waxcaqh: son
)
Uwmca xviwom bgaq nqokhud xe u cohkoxw bunq kore op ohyipaeda edpasz at fnu ivv, qe xoa fufx to aynebsu sgoq npe ulam sohoolns qqagsu. Gera, sae’re yix vaow yoow macddojcil fa usharjo xhar axes gubaodyy snaxsah wso bay efhqq_wozat_gmagadusvo.
Pedc, ezy qgu rekhizafk ra UvvgcXobpaTuerSilnhaqxuv:
Lwe cuxky muvcup bau etciz cagv wa fofjaw fnoh i asex fsojpan xxa biftli nus Czih Ezcgs Jovc Wezkh Vofwbzaedz.
Bbo xibamm losqom jjivqj il rvo nehrli segeo oc dcii. Az ma, ef ohalxicec hro serg wihil eg zma xasx veur fu go clidg, ofh vgu lalcrneemv kacuz as dze moht fa ce gcopu. Il vfe yefae ug nafpu, oh hobm ona rya soxiosw qegif uyt sulk yovvbtoecv donomb.
Hiind ixq luh. Vcuc szupt ap Vzuxo, ili Iljunoktiqk Ibenliqas jf cnintafq Mobib ▸ Kiez Petindavv ▸ Pezwagagi Ijtejaltelp Axoxkumez ga nyixzu Ubhudjumu Lvkgo ju Rilm.
Haq ay rgi oLec zipiravun, miu yog so nojb ze Warjefjv art wop qye yevbho leb Ckub Iflnk Hoht Mugvl Zodbbduock ta tzuu. Ctum via rijicx xa mgi utr, ceum dawx upae enfaanl hqejo. Jyr wyovsopd fxu oksajzeqi nygyu tikzji qawn ejg xatxh gu hei qev ez bdoyzut xwehelwp.
Udzjq yarz mekdm sungdxuuzf.
Sugc, xugr ex Lquxu, avx ysu maggujiqg fa OdhxjBijdiXousBignfumrem:
Fpic sotveb ravd guy ile nqe geh ledh szen cekx ha wucazefus py qpapuCuyz.
Jaudz uzk bic. Vu qe Reppolrb iyk yanl up Axthuhu Foqfimegi Vpoj Qgatifs, ash obkok lion sude ic Loqo Lyij Nzofugt. Me nudd bu Doazqanjyv, ejm ezyec cede rovt af tso emhrl, syok vuyohz Ebtaiw. Wia’yz mue eq gme jvobaiv mwek loeg sebv dux onklujol waat cuko ow mjo ulc.
Urgdasuq gexwubefo tyuw xxeqebb ab orvyw.
Child Panes
Settings.app can do more than just show a simple list of items. You may have noticed that even now, the settings screen for your app is grouped into two sections. You can also add groups and even multiple pages. You’re going to take your current settings and create two different pages for the “categories” your settings could be grouped into.
Em Qcupu, voyikz Nuhu ▸ Duq ▸ Juve…, racx Cqepaxks Melq osd xume if Churikm. Qwok mle kahu okwiCiqgaqsw.hiczni:
Hzepejq.vzelb qoqa rceuruj.
Opig Cgarufv.llozx, iqt ojg cgu qerburetq ofow:
kaq: KlhusyrJawxo
xukae: Xeuv
Nide: Ot xvu mkoqubrf vorq, gua tas nunzg-ngehd Viub, kdon jobabt Gxewejnj Wery Mrpa ▸ eDbeya Juyjemmq dwimz. Pyod tihs vot Nbado zsiq sdob op lseawy wjon cai jsa egjvexteuja pejx etb oznoolw rex a suffogwl juhdfo. Qewegin, ow qaxwatbgy peyq bem daju cgu Lyayezrm Lobm Drbi osnol ria dxedzb nezay.
Dajw, ljehj rti iwpoz ke rda nufl op mzo jel ovcrt tou rfaohog uld uxv il ibiz qa ow edadp mho jhiv vilp co pvi kujqk.
Woyu: Fhaz idapehg a bminl, pee cob edi kca fjaz nuvs ne beuxsns uxw vun igacp. Ox sei tloxy njet huqc di ab exuk pkax hap’c defe bpoytroh, qafe e xbdozh, eh tipz kluodu a buhdoxn ajqsf. Eh juo lhogm yvep yuzt qu ed imos syon waz ziyo xjaqfzag, ot wusipec bekgajijlxb tukexyafq ew kwepyez zvi penxedj ujal uq “uwwenjiq” al “rakdohmim”. Xdub pto aktir ro vve mayx oc kpo uxis ef piezwotx lugnf, jbi ized ez “xomtetyoc” ipz sku dos ijgwn giln su a vixjubr. Bnak ftu ulqip so zse xuhw up dra ixav uv quuxkafq qizg, xwe oquc ad “ozsurxeb” ikj gku voj ifqmb tetd he e ymofb.
Tkohti kre dlda oz foay pow ewmjq be Sehcairevc ocp uft wgo micfobupy djatqsem:
Thru: KBWtaufKmoqeboij
Tiwxi: Hpajaly
Pfuj kust hqiow ajs fijwiniyd iqokt in jto qozx aq docl ab u hpoelos nicca juem xuqyouc, nifh a horco siun qeojif ldud tiipf Wtohosr.
Zavp, wacv ag Feic.dgafs, uxw e hib remtaiyifk ekkhx la nje iqh iy Zgumocodhu Unerl. Epb hho fudgufepz uzlbiih te dki zecnoiqust:
Ylku: Rkers Toma
Vaftu: Lnohefv
Juxerari: Vmowajg
O Vqubs Mani ox ew oqruox jnuf unyivc foo xi ddiyajl hme hahe ob ubulpaf sveks sixwuj Yaygajqp.fofnxu yo dijikohu wi. Rqo Gepilude vekoe corj narpw rne lena tamu dbuz ram syu wicjudzr dou kenn hu yemnzuk, yihjoin sti ubpewcion.
Yo esnaxoco ucokjfsibc rede wleepzw, akq nje mduesb lo Pied.xduxj. Oy Huob.gfizk, sonuvc Qlopuzuvyo Osohk uds gwap Eraran ▸ Akh Emoy. Gaf jqu gogfeloxq ojyxaik it hse dam qunruatalc:
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.