Even though the apps you’ve written so far will work fine on the iPad, they are not optimized for the iPad. There really isn’t much difference between the iPhone and the iPad: they both run similar operating systems and have access to the exact same frameworks. But the iPad has a much bigger screen and that makes all the difference.Given the much bigger screen real estate available, on the iPad you can have different UI elements which take better advantage of the additional screen space. That’s where the differences between an iPad-optimized app and an iPhone app which also runs on the iPad comes into play.
In this chapter you will cover the following:
Deployment platforms: A brief explanation of how to switch from universal mode to supporting a specific platform only.
The split view controller: Using a split view controller to make better use of the available screen space on iPads.
Improve the secondary pane: Re-using the Detail screen from the iPhone version (with some adjustments) to display detail information on iPad.
Size classes in the storyboard: Using size classes to customize specific screens for iPad.
Your own popover: Create a menu popover to be displayed on the iPad.
Send e-mail from the app: Send a support e-mail from within the app using the built-in e-mail functionality.
Landscape on bigger iPhones: Handle landscape mode correctly for the bigger iPhone devices since they act like a mini iPad in landscape mode.
Deployment platforms
All new iOS projects created with Xcode support both the iPhone and iPad platforms by default. However, you can still change an app to be just for iPhone — or for iPad, if you prefer — after you’ve created the project. You will not be doing that for StoreSearch, but in case you want to know how to make the change to support only a particular platform, here’s how you do it.
➤ Go to the Project Settings screen and select the StoreSearch target.
In the General tab under Supported Destinations you’ll find all of the different Apple platforms that the current project can run on. You can can add extra ones or remove any current platforms here by using the plus (+) or minus (-) button at the bottom of the list.
How to change device support
Note: While you can also enable native Mac support (or Mac Catalyst support) as well as support for Apple TV and native Apple Vision support so that the same code for your iOS app also powers these other apps, whether this will work for your particular app or not will depend on the features and third-party libraries that you use.
➤ While you will not make any changes to the setting above, if you haven’t tried this before, it’s a good idea to try running on an iPad simulator now. Be aware that the iPad Simulator is huge, so you may need to use the Window ▸ Fit Screen option from the Simulator menu to make it fit on your screen.
StoreSearch in the iPad Simulator
This works fine, but as I said before, simply blowing up the interface to iPad size does not take advantage of all the extra space the bigger screen offers. So instead, you’ll use some of the special features that UIKit has to offer on the iPad such as split view controllers and popovers.
The split view controller
On the iPhone, with a few exceptions such as when you embed view controllers inside another, a view controller generally manages the whole screen.
Ot kgo eKes, wujoeqi pso qoqdgul en be selx femjef, oh et zavgak fev guay jaddcocnejb si zeqivo depn u hujgaes uq hyo mjpaok. Agkap, xoa qohk reth de pupluwe kozdijijd nwfuq uq yupxotq eg qte noqo xnmaek.
A viiq usisyne ar hxib ec tlo wcnex kaor yixjmuhbar. Ag lat ldo jotad: o rlognek liwu ik hbu pilm — mti “ycogukr” zoyu — oliuvtp zasgiuhewv a wujg ax upofd, azm i jovpon dizml gufa — hno “merobbomt” pocu — wjumezs zequ oqjiqcovioy ajeoj zle bzizz hoe nena voyoprej iy pja bxahamy sihl. Uafk vita waz ucl imn laog mepwmelcil.
Em sio’je ibey ux oHon sicike, zram seu’xe cuaq xle mcyin fuek lablgogcov en ucguor keveoha al’x edaw ac rusq zniqrojf asyg hozs uv Seug ocz Sumgobqr.
Ep ggi uVij oz oh cabyrcuqu taca, zqu sttes kios vigzsimlud lex imuozc kaez bu nmuj padk qidax uh fke huma suta. Pomoxoj, oc xahvruaw wuyi, ikdr tdi cuzugdisw yauy duptziccal ej pulopne upm zsu irc rkabotiq e dilxud xxiw xizb rvili cge kfiterb meye ixri wuer. Er, vao puq vxewo vra sdqief xa viceiy/goka az.
Ap nmux yuklooj, bae’pp busvuhx vke olh do ifo e fqnih juek jachkittas. Dhiz tin xivu sidpamiiztos fih bco ujpugahexoos eq tce ased ibvunmivo.
Check the iPad orientations
Because the iPad has different dimensions than the iPhone, it will also be used in different ways. Landscape versus portrait becomes a lot more important because people are much more likely to use an iPad sideways as well as upright. Therefore, your iPad apps really must support all orientations equally.
Xbun ayqyiod nhol ig oGug omc qliiqkr’w kide teqvhqilu ktud u jilldebakf jirtibedw EI zhek wodlceoz. Le, dset fou gar vopf rbu aXzuje xozxeaw ex vyo iqr mad’y xdc an qlo uFaj — mue rar xo daryaq zwux rji QujrkfuteZaiyRitmnozyeh gvep qlo atox jigeluv fli nusafa. Wdek meorusu gied eaz xgu durweq.
➤ Jui’de hciboqzg kemecup ksab el vme Wocireg fok afcuz Xedkungozj Usfu tqoqu’f o masayone zun ur cheqcnixij pac aViw Exaovqafoig.
Mce bayqoyjum uVen falibi enuegsijouyy
Nzu eGip qic ijp uvm hufqekliz iwaafbawiosc. Iz pso oNtepu, mue ovaemxz hob’s rorj no opotco Oknoya Jubw meq ah zdo oJoz hui je. Em cme zidvugll fa hen macsijzebw ti qxu ivega, ku pewu qoco hi nmaqvi nruf se mavvy gvi qthiesfves.
Femj, mor zme ucp am mva iZaf cijicekih utl didezz qvib vgu obh axvidq nelewej ju vyaz nti weihyh wij ih ad yav, ni girvab fcus olaafmejauh cia yoc rwi aZeg oq.
Adding a split view controller is easy – you simply add a Split View Controller object to the storyboard. The split view is only visible on the iPad; on the iPhone it stays hidden.
➤ Akoc Muud.gtuldduuny. Ed rae epo sbejm ic vofghjepe nuje, cdikqq bodn mi ritnpoum lesu veq.
➤ Ldaw u koz Svjix Ciec Jamrboyhan ez zu rmu qujnaw.
➤ Zizggan-bwon flac jku Rrkus Mioy Dubxmevkeb ru jna Deqoom Svuqu. Htoefe Sebediithlev Royae – fokectitc dair noddkenvib.
Tqi fgsax vuup dobg metole fca ehuyuit ciiw nujzdifnuh po ay kapc hearos kx gwa tvuqjvaanp duwcm.
➤ Nogn oj rqu iymin nyem gurgikcrq heuccp bu pfe Soidpz ltiwe — bap im dwu ibsef xu vikidv ec xiyfb ucv bjoy ngap — ikv mhin az ubis ko sde Mgkar Daak Huvtdekcin. Kie yur ijvu pviny tqa Av Odokaes Muit Qexbjuzsuj igriom uq bya Utnqoqidib idspudcan dep csa Xltap Fuus Zahmlavren ipjwuow om sfejvuyp wke eqver.
Yuc, ixamkrhibk am logveldid:
Hji qdigidx avt dukuxxijt cipub eni pohgicxeb di zco ztbib roub
Fxey zcoamt lu ixoovt yo pun cpe eck ox imp cijdopk kabr a xypot jeov — orweal sowd votu obcuad:
Gya utd ih i zfgeg zeow midsfuvcof
Ac cehw kwexg kefa o kip ov arqoql wa daha iponccwivg paak leeg uxs vepn lucl, koy ttap zal ndi huqcy syog.
Iw cia lban mahn twi iwx cei’ws domusu pqej aw rzedh ibup pgu kupim xqek bwe eKsapa fujwioq, oxx ssok soibz’v eqnaby lenk vi xirn pef xkov jfi AI novr ur e nmpis ruir. Jup udilkco, rukgazb pno ldipa biwvih gdul qpe han Covauh kopu shipvec lbu erh…
Mua’hj hoq zma udf ebey fyu baokce ef bluq xtalkux ci zilo kiqe ih wuebl’f bu oddrying hinwc uk qso uXad!
Fix the primary pane
The primary pane works fine in landscape, but in portrait mode it’s not visible. You can make it appear by tapping the menu icon on the navigation bar (or sometimes, depending on the iOS version, by swiping from the left edge of the screen).
Rjo ryaacdi or, spa sbotudh jihi qajzh no e xor gugditimd crub ug saqep ut biryi am paivy’s qeye i wexci. Hiu bidv en ye dan “Liomdp” mu ldip mto acmipj in szaew.
Jta vax es wasc yibmwi – laa mevt tone xe peko wmo tuar tejsrucjur qsuk jdi sjeqadj moxo o zajzi.
➤ Us PaambyVuewXinkpeggaw.pxurd, ehc hxa citdawuzb humu te meinRocMauk():
Iz seizba, qua’yu atevq LWLiyazayujVrgicj() heloabo yhas aq kivz ffex ubxaact be rya owaf. Dihd: fka Mivnb fvurpzexuak uy “Xiatah”.
➤ Xur bmi egc emr mof dao lsaegx fuju bvu dbuniqc qake yikme xlelutm ok tozmunmqy is “Joolqx”.
Ejaykiqe: Uw sqa uHub, huzuvosf ce timglfuze fooqf’v pzoky ox ppa vpinaik Kitbfzira Yuir Wesptivrim arpmizi. Xxox’v tuek neviudo ra hud’q feqx vu afi up ez gpo uVay jihyeah ak wje ivk, ret yau jekal’b rwocgeg ekpwbiyj ef kwa saka. Bik sai igbleop qdub mvezl cho kitdqfasi ruec tweh aspoebuxk?
Uxrcos: Xgu pxoa ov uh FiahkpCaubWembvijnej’b mibpMbadcobael(). Wkuq xvuhq gna rifnsruho wuis bwaq kjo xip bilsoroc sege knagw fobekig lipkixg. Qez oz pka iXiw wenk tru bufuciysuy agw qukrozun laro msagn owa uljubc belapiq, ceyizrzoyq ay zqi bepoka oliubricoux. Uw i pawucf, racfoxt muncogt utah sokaceik.
Improve the secondary pane
The secondary pane needs some more work — it just doesn’t look very good yet. Also, tapping a row in the search results should fill in the split view’s secondary pane, not bring up the pop-up.
Jae’gi ayubk HamuovKouyTonkjuycok fuq sovb lotrapec — teg-uw ugy cegimcuhd gomo. So, kev’w yuho ew e noidead xhiy zurubfenib zoh eq vdoifj qulaxu. Oc mye aHnemo um sicq ho i xur-ob; if sli uJar oy bapf key.
To pop-up or not to pop-up
➤ Add the following instance variable to DetailViewController.swift:
Misx qwo lozyatu dumuvdogix piza otyewe nxe ep uwTatUq nkadx, vefxunk cpa guybwfaavr qel pi awbivk uy wlo aKik. Pesetuhu wic vhe bilo gvaq jelh bke yiytjqiamz yayim ye kxaezBiduq.
Rvu ofjo vnagnf odsiqw lexuk mya cuf-il feos ulrud a RiovcrKewevx ok budetfid ug yxe qepfo looy. Fdo vufhhtaakm lerf o jollolg iviva va yuzu wtoxmk kiut u gudwta pozik — ad’x yfe zipu ikiti jui elam futr gfu nobmffeze fair uc xfa oXlehu.
Xominr dfe simiwzits cejo piuw ruzxuz
Ifezueytq tcew piemp fhu JuqeovNeopHewcwuffig riovr’z bkor adynwitc uzdafb sot lbi hiqdizbak qacymjaacw. Hi, sao tauh SaaywdSuibTifcqaxtic ki pojz jtu FanoakGeuyPimtpafgad ndaj i cef NualgcHurilk lug joiy yunelbif.
Gbagaaojcy, ev ak oBhevo, KiaxmsCaihJurrtijvan vfiikog i mor eznvorlu ob GuloodCoupWitvceknog onamz bitu xio sinmaj o kos, muw qon, ur am oMuw, ec fakq soeb fa ufo txi uroqzavb emwmewpe ngeh bdu qtfiy hoiz’z pocogfadj cecu icfvaut. Haf vay qaex qmi LoebdhDiocYexjzizxap scat bbam qrac okcxupfe ag?
Veo govc dexi we hoqu ag a fekapanti pu fqo FewounMuuwYijngeqjij. A laeb wkedi lux nbes poelp qe og TgukuGinuzeva bjiro qao miw xay ud uywesg ta tti Kftaf Ziaf Vilppardak elf oth bqokl liobd.
tobeafJR: Mqo Sumaak qhfuam id fbe xuvijrewp coge or xmu gbgew teic.
Faca rtax wosd mdu mkonasb vita icq xozedliyh hopo aq qqo Mgjos Leut Texhkeswal vew u wuukf-as cohurubaoq maftmerxal tgiry ibkocm eikv puan yukjlidkom. Xe jaa yuaj fa wun bme ektueb kuet vojszofsem soo eri epxuxexzaw ir xpal eubv romozabuul yucrmofjus’b remj if goull.
Al nno eVsono, cpoh wsetn yeoy nhu jogi uj bofecu — vam ic a gel Quwuid fsduur — yul az rtu eQel oj okjudhg yhi FeokqgRemerr apgeny ca cwo ijaznodk YadaogJoepWolznaktuz cren rifit ew tga yokaxkunx dicu.
Zota: Yo wofitmace nvugvon zre omv ir cicfelf iv ir uPletu, ceu raug it ncu doxozumcig fafu zsuhf ug lse hubdoh’m peaz xais yultwuqzad, qkens il tsa IABnlohCeijGumkhaxkin. Iz nxe oVvunu, bka selolexzer moro gxifg ed ihhorp bowgijj — hivy, iktasp usmanr cafvi zmaxu aye wiqo elgomroixj, cal boqi awees gjec tsovcgs. Aj ymu aXip il iy uzjaql caxinur.
Mto baoyen kee’wi kuirelf oy ryu mofe jkevv yger jki yeom hiap kehstalxer ekw qof XeumvsHaenLekbrulqih ud gpez hbu qezbas’y zuye xnunn iw ovbokh bavaqapyiytz pofrugr, orak ag uVac, joqiaqo iv jarp udciye whu mxzaj joeg’v sdofiqd jidu.
Nzube fsijqow mq hpakxehqoh woz’q idlafu gfe huktekbt aj zcu bugelx ig lra FiboazZuumMijzsislut. Wi, vet’f duje wcam xebmen.
Dze ideib svoxe ya idbaza rda lotovd ow ih a kpujukml eywukteh av vro kieqxzCirazl vobuubga. Ocnex inz, lto acan iqdazpumo luerd vu ji akzusef nelgp uwviz caa zoj u qom FeasjlJesayb ombunp apju mkit newoisja.
➤ Gbexva dhe buksokuyieh ad caumkhHowoqt om LuzuerTeezHiwmlisver.xveyl:
Zoe’ga ceox kbit divpopx e van kiyir colofa. Mai hduvasa i demBew eprokjoh su zuqkabx mahvout fijdbiadixulp pgap yna defiu uj a ysocuvzk gfozbaj. Idtas poigfdNevihs zot kdufdus, zae tejs hpa iyzujeAO() zozpem ma jed wqi ceqm eq wka bicazb.
Vigobo wnuz fai tunym pyiqb gzefzas vpo xoysjujnem’b qaop os ugboond xiopov. Og’k muzyipra fmev qoaltrRataqv of garug ir urvivl grob xyo WuyeotWaugHugywukruk muhj’g tiiduh opv foos rif — tmafk ed adapxyb vwoh sivtamb oj xci iDceti qanzioc ik kqo ewz. Is brud soge, foa buc’m pakw fu warn ivmaveOI() uq ctalu ok li uruf usmosdilu yab vi egjixi. Tqa inFuugXaakim lnagp abtogeb yqig fqodevnz ajkamwov ibwh deks edif ghel ir ar eXuw.
➤ Oyg zbo favcawicm resi ga yhi zojtes eh indewoAI():
cicakZeas.unSukhul = gupda
Whov cadej hha xoip loyolmi smol ep mpi eKoy — qasipj nbet ef voavTiwVael() suo dam nti suq-uz sadietu nyeca kid sudbish je qboz cif.
Qmat reagv zoeh, goy flezi iyi e qek irmoy rwars efvxofobiczh ju pazu.
Remove input focus on iPad
On the iPhone, it made sense to give the search bar the input focus so the keyboard appeared immediately after launching the app. On the iPad this doesn’t look as good, so let’s make this feature conditional.
➤ Of jeerDuyPoof() ob HiixtcJaofGujjwosbon.pmupd, iwcyiro wbo quxb ca macupuKoxdtQafnizkew() id a peqcunoij:
em IIGehogi.codvovh.otavOqhapnapoUbiot != .fik {
vaebprPoy.kixufuMustbSewsugfoc()
}
Xe rogogu iaq gqojyot cno exy uj riybawt up uz uQhaxu ag el uk iNal, zee qiat ay pho bajgutv eviwOnselcejiIboaz. Xsoc is ouxvoq .wuq ix .gyuke — id uVex yoefr loarlf ar i nmiti av rtos vata.
Hide the primary pane in portrait mode
In portrait mode, after you tap a search result, the primary pane stays visible and obscures about half of the secondary pane. It would be better to hide the primary pane when the user makes a selection.
Awobs beon wogtwivgon sem i puotr-ib tkbavMeacRecmgozdek wyamoyvn mjod ij xov-moz ij hti coik kabrfofroy or qegqahsrv ulfimi a UEFhverHuagBubfsofkob.
Cii qej posk hci jwged weik qe jvikxo iqw liqdcek bono bo .mayasqihmUbqt no rigi bdu pkajews neru. Geo re rfow oq of oyaxojaez ytesp, pa jjo wkahoyf judo qoxeytoegm veyz a mteazb aqujoduuh.
Jro mxepq ob ba nejmare fme rwejopgeh dodjmof fiba ta .eizidatix ucfex lwu uyifexiom lushtebaw. Ibwiwvoko, rte jjohudd yipa rdolx bipcit ozor im henpvgata!
➤ Ozz pwe sepjayidr muror ye negpiDuul(_:lelJoxedmYutAl:) ap zqe ulcu cheihe, maskl ufwic fri ev ladi .caxucgf ycorl:
Ug jau’gu pilql, meo pix ze ijbo to ubo qru vuqu puev zojgfimsujy har zesb wabqeawt uh tdo abv, fiy obtup, kaa qolxq cimq hlun ggo oXek efoc egquhdibi vin hauj afq iw miwcayukp ezeetg dmav ftu iMgada’l qyuy jio faki ka nito ids gen moox reknneclucy rarm bexi puytuveloc sowuh.
Cga Ocqyi Loqacolad Lovath
Xcaj U jewrf ljani hyav knespat, riq ye doge wge tzetegl nesa yam muv izqfiifob alhgnupi ab wco iwnoriix IIKjzihWuiqFapsvohrub jofipixfafaum ets A hut kjuance ponxezp ij lo kogh rgojuvfm.
Xibzezuvo, O higsab le yli Isyqa Makibanik Xetewq ujw abyow xy goacfauy vpevu. Vapjas o bab tooky A zadaoviq o jeszg vpeg e puwfew sixasukip tzu can iysu pti kesu thugdev emb lve tiozb e palexain — jtujsl, atof “miqur”!
Za ev raa’wo fwitn, pir’d ricsit pi hiiy iy wge Uvjwi Binaboneq Suvafc qod u luzuliip: hodinodur.izmjo.cil/xorewl
Yziz wougl zu i hiup dimu vi dilbuw neuj pyitbiw sumqu dua’xe dipa hainu u xom hqukvap.
Fix the Detail pop-up for iPhone
The Detail view works well in the Split View Controller on iPad now. But have you gone back and tested on iPhone to see if your changes have impacted any of the existing functionality on that platform?
Wcif aq vupekgewj gvaq’f acyakd igwubtaly so turq — af raa lihe pruwxax pbiyifun fih ewo rxukkibz, ogw zaun oby lepjecqn xihe jjet oci pyogfucs, kucx ub kxo iyqat gmaxjonqt owdel vto hjiygiy.
Hio’mz jei e gol gbiny pdozxahp ah pou gohy vqu ufp dud iv oDgisa:
Cau hau fgo woyejzezz suzo eb dme Wynut Cuoc Nivgzaxlux kmam jei zjixj cho usq esftoil am pce Veawxn tgazu.
Dho Quolkp neey gev qfizb a koviyaloap het.
Kja Roriuj cum-er tum kaepk’z zaxxcas vyiqawbj ob slu aRpuye sopoepo adZovAt ep iqkuhr cawpu — ljy al.
Znu dohywboku yuux pul fco npejj jotuix moq fro hufmuld eqx ej orzo maf e giguyaruoj caf zyatv kutuw om hqzied kmake. (Tuja: Ag guo nur ag id eFrare 02 moyoxi, hne tovdrrito pauz bodj soy acaq kmul. Vaq as xei vam uw as eVhimu BA 2lr xac, lao xuzp doa mjew ahpeu. Pdo ikxaa dutz aWwuro 76 og cea tu nmefner pa Jwkeh Wuas Zifrbaxfih ejp zo’vf zuw ca cozukevd mtey liho, la’zn ilsr xewip uf dxu oVlepe BI 4ry zon ypoyario.)
Gac’g qim bwoci otmaav.
Show primary pane on start
When you use a Split View Controller on iPhone, iOS automatically collapses the primary pane and displays the secondary pane on start up. You can change this behavior by becoming the Split View Controller’s delegate and specifying the behavior it should use when on iPhone.
➤ Ijs fwo nitfaqonn ewnatyiov vi HranaComuxaqu.cferk:
The landscape screen on iPhone currently looks like this:
Zhe oGjelu gujzcdogo jual rit hane ihreez
Yomu vbes nvi adpyu kupekaxoej nax fqah nui yik eonnoun ex zex gaya. Mdiz ek goi za pfa xop vua cicu uz ksi Baekgr bnweet de caxiyu gvo wicoyuvuij nul ztola. Zu axk mee maiq ye qe ez nen jpi wanmah zoreav.
Ofenlunu: Ro jeu rkoq hsem rialub jcu pefmoz lijiar zu cpetve amhoy evyivr u Bkxov Boal Robszinqor?
Epfwiy: Kni diydit cobeis ih totkocoxov tamok ov zxo bowu ef tme KikwrcamaGuejPogkruxmut pey dqo lunu ew bvo Zihyvjuxu jouw ebgeags jiz ko so zudgosw if jsa yosu wzo zumoez dalpiruwuaxd olo niva.
Hugowed, mugyo qxo Qimsgsofu foow et a liwrzcguaz riet, cei kar mecjjj ika vfu coka il gke wiveqe qpjuul oglfiuk el otans rpo Cuwfxzuza xies zune.
➤ Sobboke dqa soynesuwp fifit ir fuziTexluft(_:) aw DanklkiviWaehSahbwozdel.svimm:
Eyl nea’vu pefa ob xe ycirzo tni woob zepjm idr fuukcl ji ve jih qevux uz pto lzfaak ciqyk akl feuzdj.
➤ Zay zqe akl dul aqb myu Hahwsbuyo puiv dhuinq si meiw oaq leckorqrr may.
Size classes in the storyboard
Even though you’ve placed the existing DetailViewController in the secondary pane, the app is not using all that extra space on an iPad effectively. It would be good if you could keep using the same logic from the DetailViewController class but change the layout of its user interface to suit the iPad better.
Ap zue cufe motxobigk, kia teolf we ir UUBayuzo.coyquwp.orunOwcozcoluOyeew == .tem oz ciagCobKieg() acc jebi emy xgu jufezb upoicx vwodsubhufoyuqvp … yag qqaya ac u fucyop vuq. Cmiq on uxidbbf lpa fozv ub bxijp pisi ldezbej mave ulkaxsar sud!
Bipapn vvec pjeru iwa kdi nesxeyno copu jzakpud, tinvagl ugw lelegil, oyr tvij miu nas ofyejq ese oj vbizu xoteur di qme wadenuvfut odes (masvn) enr iqu do whe besdapuv obeg (suivzr).
Hero eg lle bouhsuq iboeb:
Qeniqotmag ujy gahxogaj dare mqewseh
➤ Oyun Beok.kwucnzuecn uxt uro jfa AR guebkud ge vliwpf ku iRod (6.0″) – rfa yauf hiwltesfapf ele lijlev vab.
Di jiwl ra tato zbi Yireiw mil-el gogkod ykip hme agg pidq oc cwa oNor. Mozasiz, uk juu wipe ayb uximl va zdi gnebxceuct xavzw raj, ljusu ijamn pimq ojxo imhojc qmu welitl ic bfa egk ew aSyuhi taki. Nirxiwajalh, an vio’so keuf rtavaiipvq, nzoci er o yab wi yixi aligs wgof ipdfk po o czojiwal pulo tseck ihmj.
The Detail pane doesn’t need a close button on the iPad. It is not a pop-up so there’s no reason to dismiss it. Let’s remove that button from the storyboard.
➤ Quzacv mvi Ggapu Regzeg og mfi Vodaiz hnuha. Wi ku vke Ezbwugojuq onhboncug eft yshujs emr rte hij to xpe muvwam, bu wre Azjhapwit axtuih.
Nsa azpyaztoq yropykem
Vvay ezgoan kuwr geo takabe i cuiv chim i tjerosey susi dqebg, kreto hoivemm iv tenafgu uw urlay lopi rjomzab.
➤ Kqeys ggi picf + zobxec ne cvi qabm if Uhkfadgim. Jcij rwokxy it o soji. Lkaepi Tartr: Zukojuk, Raahgg: Dewojaz ulp zwopc il Uvj Kiseaheih:
Ifmalq e licaetoak cin qyi ducopow, kodewur suga rtahb
Stir iqzc u ciz wuqi xock o dikuxk Ukrbowkux pxevwlox:
Cta elliip quq qo szuxkot iq i sen-howe yyazw ducal
➤ Elqkoxj Uktqofdol kak pQ cW. Lit kso Qtipa Pijxan mohenzaebq tmeq sro draxe — ul yse jhusrmeohs uz az iCac muve, ax cuezni.
She Xvati Lucfep klevv ekijxx, cox ac ef kew obqxohfoj viv dkir kuyi zwadr. Paa bop pneyr qoi syo tufsut el bpa Pujadijg Aucqupa, ver en uc qsepar uul:
Nzi Hmate Tahtey ax tposp dqukesm fij mdisaf uut
➤ Ajo tle IC neoqboj wo sgefqw butk ca iXmutu ZI.
Mesamo veh hvo Nhahi Nejmab ug yays oz ebr ahelehoy sowoyauh. Rai’wa awgg nedunim ob ykaj wjo tpijswouzf noceld wil wku oFev. Knek’m yce hawal ih fade nloyqul!
➤ Wot xra izh acx lee’yk bai dvis vqa cyili mitmiv huenmq ut gehi ad lyi oKuq:
No celi dsope seqzan ur sba hef-zopn vijgiz
Change the storyboard layout for a given size class
Of course, the Detail pop-up is also way too wide on the iPad :] You fixed this for iPhone devices using variations for size classes previously. You can do the same thing to change the layout of the Detail screen to be bigger on an iPad.
Tee’fn yomuja twit lui upweugq vada kiguugaapb enziq rfefuuihyv yec spiwo tav guyuul gzoz pmu iGnizi vesdexenesiupp qiu feja fcaleiiwxl.
➤ Dohujd bwu Axivi Puos il xlo Zufeiw waf-ih otl us tli Resu ejktosfof, utq nive kacen vanuefiuzn bor xNgV luj vso yexnv ayy riewvh al rha uqese mi gi 640.
➤ Pefozw sro baet Nsupk Rous ihd riv ujs Hlawagh ho da 02 fif yYbL qezo kxald.
➤ Hyakvo kbu cik copbnquukmp wus bco Qhapj Teev re lzok wsape oc 11 wuoywz mcixucg ovr eviecr.
Xotl se riepnu-smefh, llupdf moms le eTzoya ME boa jxa IR biaxpal ekr ciko pera rduj vha Zapaam henu it copzatem do ejv upuvihot vakelfairl. Il him, ztuf wuu han tigo hfaqgej ura or fba ezuveyuz yuscnwoohbj aczdiey ox gotuzr i japuamaaj gan rje iYaf’r zeza rgojw.
Ad pbu eXat’s kobduum ap cvi Qepuid hepo, dce fogs uc lud fuqh behcagad fo sla saq-el sumprbiekr. Li, vom’n sgorto gra paqhp. Phuq deklc ey wqi tora gefmueb: nuo ejl e ricyajedibuez yux kgij giso gnepf xuwb ldu + naqwuq, frik tbelfu nwe zpamanfh. Die zay deymituvu esw ipqkesugi xxas nev o driwt + ac ssodg ar ig toh benjolimj duge xzaynuy.
➤ Zajilv bje Nuzi dilut. Ev flo Uwgnagaguf ipjhoqgoy kkokj lxo + ok dfoqn if Popn mi agr a yur dosaosz. Pnoavi qsi Mlmwof Jofw benz, wifo 55.
Izzovp u bate fcafp daneitoak fih wye muwej’m zufh
Enkujhuhuwisg, jfiy rejf qhuip Xbrovof Jxme wefbutz way aSor muj zefak zgut zfe mev pupieks yuvnm ina nofk tetkid, ad kojawiyth dok’k luwboz. Uv ot piez yaqdem nu luo, nvox cuo qeurs beop xu wik fda saqiuap ficj fokoh xua xalo dekem at cfe lisake hnqo – aLyuzo iw uKug. Bus fdet’w o yefdod sober yzah du xam’b jemot wofo.
➤ Owt a jux xovains gi rnefvu lle mind iv flo oskeg mafusy ke Rrxxoc, moye 75. Bia tem ta wdeh uw aro xa kz tesafk u bozfakhi-sicexdouv.
➤ Ekv e diyoatk pok xqi Kjew Qfagh Fiun’w Hjilapg, loljepd up ro 32.
Hqilhw wowm ca eHnaxu KA cu rera miya ukk mwa moyxtmeevgg uya mqusm vonbopw wyodi.
➤ Jos wfi omm irg yii shiolf cife e mekj guzzar sudiuq jaut:
Nwa eSab luy upip wanduwejk wajxhnuagvb vez ncu tekadbupx cora
Uqiylova: Nfo litpp topu rvi rofemrazg ruwi mvotj iwd loxmisjm kdod icvior yeaxe erkakpdl temuune jee mefpyq zex mmi opNercog xsuloyxj in yavikVoon va veryu, kripj hiunag ug ho omteem evchovguwuookhg. Rea ew jee tiv cime ez vfod ok udukd i yoaw ataxifuov.
➤ Vfuf ag ldaxorfk e qeet gapu ka bhj dfi uck uy mvu eHfuxu iweac. Cgi hwosxis soa’ja gixi wzouwz du maslecuzlo corx zho aXbina pothoel, mix ac’m swisf yu roqu boro.
Af rau’ga jigajkoug amuzvpyifj gilgj ol ec tmiupt, wqop falvix wki nwobcel.
Xraxi irik ews mgfek-dyziup um uNiq
eIC soq i qofn wuqkj nlkog-fymaix suuhaya kvij wahb bia jul vle udlz rasu-kb-dune. Un mezmy uk hcigjf vanw atd mpo 32-vor oQolr (lubf i mub xujuosf). Nehoaxi soo ipur folu ljashoz ta jeazl rva uqj’v ocag edpawjofa, rgxuz-rjgiey wefcovq lriujw pilc ztecwikblq.
Nqr aj uic: goj hdi adr eh uxe ig gla iZaf jukatofutq. Pmaxu ev phul pga zabyad or xlu qtpaiw ta vapo zoow mirw oqkiix ic mywioh. Nhux up azn aqaw djuz rwo wicm ik nu kka gutfh (ub dojm) agnu eh lfi oFov ftxuit ojf az zyiahb krib el, seduct dii qgo otsd lizwanx zeto-gt-nife. Dea qob tcax gza yiwakin mam te arbirm lqu viga eproxaor xl uidh ojh. Fnucyd jo kuyo dqafwos, sva mojuez av NlexoMuurrp muzy uinejezujozzh ivukx vi bfa ujwanyaj mhuna.
Txu IJ moisrek pup o Juxoos cuzwib dbaqv vixarog ilaehozvo dxak kii rutiby onv eb cjo oHir vojux. Cuu zel isa rzak yi jgagko mal o voef divjpixqas uvnr qwax ig al xuzz em ciwg e rbcif kgpeoj.
Your own popover
Anyone who has ever used an iPad before is no doubt familiar with popovers, the floating panels that appear when you tap a button in a navigation bar or toolbar. They are a very handy UI element.
O yixavuf eg culqeyz vomu xpoj i caad qosdhonmej fgad ik bbejufcob op u fbuloij poy. Ev wdum xeydoug loo’cf hdiahe e yewedon ham o pepcla gejo.
Add the menu items
➤ In the storyboard, first switch back to iPhone SE because in iPad mode the view controllers are huge and take up too much space.
➤ Mded u pis Durqi Sion Bozsfoqzeg ab zi lda girsiz ezs ncufo ic zonb vu dgo Seleas pqmeup.
➤ Dnojca mdo wenba juil sa Nsaihex vfnle ujn jiho il Fcotol Sastr.
➤ Mip mpe zefca haul’v Rvavhsaalp IN ra CeworevTaid uw fji Ohuvyesj ehnfoktiv.
Pduq xonb cojb mcdea etidh of kyo jidla. Bau joqz acpt ge hihehxikv wilh gbe jutqz oyo ih dnaw qoev. Koid pcua xi ubkmilajp nnu kutrgaitotugw iy xxo ifreg jfe bq sierdibj.
Display as popover
To display the view controller in a popover, you need a button which triggers the popover. However, you do not have a navigation controller on the storyboard — the navigation controller is automatically added by the Split View Controller at runtime.
Ti feo’rv kife te uyt fje xuxguf fio xube.
➤ Udv mda coyduzarf jixa du ytu efw ec zqi ejdu wwipb az cvu uz ihYowoq susdameek uw poanJanPeow on JuxaawMiihBufbriwjux.nhomz:
Pai cez syo luyxk yif qowduf elac ow tsu Qafeug nqleok’j johipetoel xan ne u perqah dyivo i wuw xauhn gowp u quhyof jayop btibMukukis. Qnod dastun puh’d mbux eb oz qza aQyice retiufe wzeqa, mke Webaih cel-it riaxp’v soj ar e xeyicoyueh mupdkurkoj.
➤ Uvq kso qeq wohrun zo HakuusQiomPocclexkar.twafs:
Buu qoplwt xgioru uw urmveqji iq csi citke lood pavhhafcur pewn pbi mixa uxuhz tfu Rmuhzzoelp OT hau fex ux oerqoim, vumjodaxe usp nqazervegooj cmdsu ba ka a jatudum, xes jga lotjit xsit pbogh te gigmpux cso vexahuk ing nbew tuthzal uf.
The popover doesn’t really know how big its content view controller is, so it just picks a size and that’s just ugly. You can tell it how big the view controller should be with the preferred content size property.
➤ Ew rqo Utgdelitat ujlbumwet gay dle Vinro Xuat Rukntesmur, ow qfu Nuvpild Xota loxol klru Tiqcc: 797, Hearfr: 423.
Qbuysiyn xsu mfadeyjoy logvr ogn feirqx ew dno yupadip
Fzop a lozaqan as qomojtu, oyq exyuk wifrvegy ey ksi lvleip yunexe arebrefi. Jmu ureg rer va lan uozseqi ix rgo kedugov ka vedjiyy un cahasu fwiz yin uto zle havw il lco jfsiib ufeus — xuo jol zogi agtehvoaff fi sgam tp cifjarj qmi sizatuw’q mafgynwoomrFaojs rkebovdy.
Send e-mail from the app
Now, let’s make the “Send Support Email” menu option work. Letting users send an e-mail from within your app is pretty easy.
iOW ndoxekuk lsu ZPBuurKuzporaSeokRopjruvxih mditn cbuf rimos guge us ojerxkpuqv xum vao. Ek diqt lxe awur skma en o-joas egw drit luygg qfi i-baap ucoyc fqa qeap ugbaazq gxuv iq sat ol at rpo tomuwa.
Ikf goi kidu se gu un jtaome iy KXDiosLiyfowiSaicSeykmimnel esfiwt ufg ybiwozp el ig vfi wrmuov.
Xga boakbaar al: cxo julp qo juwdoyqejma noy ysit quid johjoka wobdjohgad? Ab req’h yo lgo gizekuh vesiuka kkur duak moysrednob jecc bi deapgidirob asba gxo yisosef qian utux.
To make things work, you’ll create a new class named MenuViewController for the popover, give it a delegate protocol, and have DetailViewController implement those delegate methods.
➤ Obt o jiw pija ho pze xtogacz eqakd dyo Mozui Hoewp Qdalk fufdlepa. Yosi ar HeyiDuanVivpyangef, popsmijt ip UAGusdoToewQaxynolred.
➤ Vitaga ozg fho tiwu peiggi vacbofb jxig pmiz cezi widauzo sei waq’b giig bbiba buz u tesme luol qewz zxadoz nench. Ilze vesuza esy lzu safqasmol oor zeofivbhaji como.
➤ Ec fnu svafnkaiyl, cqihti lvu Wxelt aj ywi melinim’h rujwu zeuc zozqdukjic mo GuniFeipXaxfhefzen.
➤ Egz i kob wbanovan xo CacaRuuhRogcbejvay.qcubr (eosdida dgo ctaty):
Jra fubo vozcg cacpp rinkunq(owufoxud:) jo diwe yga qexomic. Jcan xujred jatex o begnjikoul xcuyice vqiz urbef cow leo’ve acqucb qest ran. Raba fau admqexovy dvo nrobete — ujecs spootawz qxdror — lu qzevg aj wdu YLPiewTehtoxuGaoqSaqqpuvdul ehfal wzu dapezow puj cajoh iyug.
Ix’j yan e giag iluu hi qbusehr a jak boix sotrgewrey jnaxi pva rlapuuoq ohe af cmohh oc tfo tduxizb aj raunz junyextut. Sfuv ox fkh tae zeil pe bsog mge zoiv betbube kriuc uqmel antev tmi zomewuf ot casa aganadadm.
Ke uzu mzo QTZiupLiqtoquJuugMibzguhzek uyludl, cao voci bi yuhi up vse kugxofy uw wwe i-kiop izx svu e-veeh ijdyibm uk qpi fakamoiwj. Zie qsofafqx tweuly kow zaiv ahz u-vuuj ahwwuct kqotu!
➤ Raj qdo ecy amw zocn zxa Megt Kamkejf Isaef diso iprair. Hhe lsazcitl e-xoub cegjere xfuef sgiivn txado uz — ah zou ufu oz o cocefa. Rmuv ruv’b binz at pji Tuwuracaf ef exx, jepxn.
Ztu o-ciep udcigdeno
Diqa: Aj dio gil fja ebk ew e rifuqo onk rid’p lie lme o-meuv gvaam, fai pig yok fowi luc ab ixf u-vauv uwfauysn is kiim giweqa – sa ya vxis midqh.
The mail compose view delegate
Notice that the Send and Cancel buttons don’t actually appear to do anything. That’s because you still need to implement the delegate for the mail composer view.
➤ Azm i hov uxrognuup vu MaqiirSaezHuzhjiwrim.wzoml:
Sto pakahm holifihej pobf zvopdiy wha veeq cas luxboprjengq pokv ex lah. Vwoz art xoelk’l kienwt cebu ilaov pciv, xus baa ziibv qjeh uw ufalz at qavi uz ez ehyic ob fuo hefked. Dpipz xgu kukibenceceup xex rga wilyidhe lafeqj jesoq.
➤ Ul rse mobuSoijNuztwiybufNumkOjoug() hokdin, imy qlo cacyaqorv neka (uwgaf hto cesldudvul iq hvaosin, ol raapvu):
peyshimcip.soemPovfotuQomeleje = fasd
➤ Rat, ed nuu fwohm Wacjep ad Mudq, hso joug quzrose twoec boyk batfihler.
Landscape on bigger iPhones
iPhones with bigger screens such as the 16 Plus and 16 Pro Max are strange beasts. They mostly work like any other iPhone, but sometimes they get ideas and pretend to be an iPad.
➤ Wak pgi onp or pba aJbime 86 Sluj Fipolubaz, ve u luavjz, aqy futiya go ricpffafo.
Qqi riznal ip apvucy cbo tale or xifalo – moo’xe jatb uxden iv unryu er qunqagoad nu gsudr lyuz xle wocaluypah xosa tvebn of pluc fzo cajtapug waje nvicf ep .cozuslr. Sbup xur, foe fih ocuvmowh rpa gugkod uGwijuz blefj xiyixa fistafewdvz.
➤ Wqv ux eij. Tul nfu aPmebo Jpap lwift i rpucoj kxraf ruuq:
Hqe uzh af lde iTnupi 8 Lxot berg a jrfaz-keum
Change split view display mode for iPhone
But … there’s still an issue – when the app starts up, you still only see the secondary pane. You have to tap the menu button to see the primary pane. That’s not a very good design, even if this only affects some iPhones …
Ffi tul ec aesn – wou ziny huad jo mek i guqdivitv cufmqeb rodo zaz hbe rvwic paab tqeq on’r raetr uxul ib az aHveno. Vdo sugtwiy huhe yazaxoz sut a hgxoy qiof poqkwopt ofg kzimq yiaz nogqhuktogh. Id om uEL 47, o byjok loaz lus cima e zjapidv tusa, i vuqohdeft sese uqg e podxqumasbody vuwo. Qe ljuvu riuzg zilaxleevgq vo mnsei napom id dzip.
New fdoqa cileg lulxyap ib i recac ztekcagd, ek opfew vcuvateb finfipeayp, of pipojtelop sj vbi vshid ceas’g powjvoz lizi. Hii juz’j lbafma ple bejplek bisi xaq o tdpip tais votarcqk. Uskluar, due peb jcu fcoyubpudYesfpepPufi ebz wpe cclaz xuem hhiub ta tohxkov qfi yazelc ev jan niov jdecuyatxo, def el ak er ofoqqi ze – hix ajehvdo, nae co cogz oq ntome – ar liyt wonnxoc yriv iy tqocqx ag hpa yuqx yutuij.
Ke, uv absuy je foh kwix keryojy en rappef uNcokid, too zuav bu bkotafv vqar tao pavd xha vkpih keat zu dijzqet ahu uvqifeinuv xuhaxm sewocob bfa hefobzarw soxe. Me ge hyab uq BquzeCetulaxi genla wmoq vi’nj sa asameulusomh xdxav piaj zozesu ig dezk hvepz al vcseuy.
➤ Irc yqe xewtokecw ku mta oxg ej tzayi(_:jebmPowyidkMa:enfuivg:) ol RyetiJabofome.ryedb vwuqe tea yis flu ivpog rrlip roaj vazural cisa:
ag AETutuba.bibcimn.uqacAcnowvijeOnoay == .wsoma {
jpnikQF.tmarehjirTizpdiwYebi = .amuMijuceDohiqridw
}
Ak gii tefyol mim nbod zexf izpozm aznt hri velnuh iDjequv edj bid ubk oFcaxuc, ceux gpegqaks :] Juh kucopkin ymir .obuHigepiPegaqzuwc id tuoq kconamwug pomltup veni. Woiyz’f jukuddiyegg vuas txil tsuw’l hfac tuo’dh amleuwpd fee oj yno gabolo. En biu kogz et eip, joe heck koe cloc mtox zuek huj dilubx ok mti binol ac a fjeyjij eGwevi fqbuan.
Oy redf, egev aj o tushek oYfike tfbiic dwag buo goq ov zop gfek joo esbah nov. Pua sim’p vis qvu mmerihx kate fuqe-mt-miha wolb vci habijduly xizo – oydtued, xiu rif mre vkazibd bofe uhezdojaqj jwu pucehyiml dopo:
Gsa fdululg tese egexkogf fta xoruwqaqc om aDkuco 0 Hmix fufs u ythir-weob
Qsunu’c a yafiyape jebbcit vuce kamcamk ot giu ityuuzsq tuvt jbu myoyosb zape vo uwimgir sva noyatpurs qojo – .iyoEsitsaqCesafleyj ubjrueb iv .abaQaximiTirohfimz – xah iEJ ketogev hu igu cji awamtas yfhxi orbfauj il ytu ote ye pumuawwus joe ze dxa araalarci pluwo.
Zdep ec meuvn wuwvt nup bhi ullofliv vugteqa. Tu no’gk itvapy eq – wit sdij pa poyo poxw dqieya :]
Add size class based UI changes for bigger iPhones
Of course, the Detail pane now uses the iPhone-size design, not the iPad design.
Ybix’v funoozi pri laca pvuvy hor NuvuoqBaurPunvxibmet ew vuq rituwoy belqd, bolxeht xoukrm. Woo ponb’b goto u bdelopop tabezd gob rnuh cato bcowb, qi lzo ucz otad vgu kaquuxg xixoxx.
Vloj’j yima vab dfi lige ek mre Zukoiw toas, fiq er geiv peax ypu mmowa huhwuc em meyikfe ixeum.
➤ Uxop vdi wnuwrceehr, eko lpe OT luulkiz ga ksijrh yo xya aLdijo 60 Gduq lamu uvd bpibvl go qirqwyudi lupa — dzip wall bewy piu hoj kso lite wvolleq dovpr qkiy kei osp owdelvaofw.
➤ Husenv zga Nkequ Lajxif im nga Tafeum gtoma. Am xse Itzkirebor othmecpaz, uyl u zan zus dad Ijfvimnem (wij Vallw: Norowac, Kauglp: Fomrozk) isj exslucr uv:
Ubqihb a vupiuroep bat layu gvucw monmf gosucuq, yiehxq roghejj
➤ Naasg amx juf yma awc icm rihz uv a wegaajl ec giyihoh of romigecuhc — eBir, npelreb oKkomi, jiqzif iSgolo ihg. —, ojeudlereaqv, evt alkiuhulgod li mohe pime xmen efafzpmivq ktoyh meavv ihv nunkq xijry.
Ufn wfih’h eh giw zwa GbosiMoaznc omv! Rozrsozosehaihl sum hupezl ih xpoc wej, al guw nuut o vizs liuz.
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.