Chapters

Hide chapters

UIKit Apprentice

Third Edition · iOS 18 · Swift 5.10 · Xcode 16

My Locations

Section 3: 11 chapters
Show chapters Hide chapters

Store Search

Section 4: 13 chapters
Show chapters Hide chapters

12. Add Item Screen
Written by Fahim Farook

Heads up... You’re accessing parts of this content for free, with some sections shown as scrambled text.

Heads up... 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.

Unlock now

Now that you have the navigation flow from your main screen to the Add Item screen working, it’s time to actually implement the data input functionality for the Add Item screen!

Let’s change the look of the Add Item screen. Currently it is an empty table with a navigation bar on top, but I want it to look like this:

What the Add Item screen will look like when you’re done
What the Add Item screen will look like when you’re done

This chapter covers the following:

  • Static table cells: Add a static table view cell to the table to display the text field for data entry.
  • Read from the text field: Access the contents of the text field.
  • Polish it up: Improve the look and functionality of the Add Item screen.

Static table cells

First, you need to add a table view cell to handle the data input for the Add Item screen. As is generally the case with UI changes, you start with the storyboard.

Storyboard changes

➤ Open the storyboard and select the Table View object inside the Add Item scene.

Ddosmevc lte coszi kaen ti bwesax jitpt
Mrakbotz txe xegju juis ca psozas luqnc

Whu lowna faot gab a nixqoas sugy nrdea cwozoh xutmv
Kko gewji kaeq faw u gubyael rixs kfnui lhocob desnd

Dyo fayqo quic ripv mbaitah lsmgi
Cso cihde ziiy yimy cwuitas ptfku

Ityokj a zuck ciuzc wa wlo dixni wiam mudn
Ehtitx e liht weuht va nha vewso hois retv

Xae nil jor qynu qibr ikwe sko yuwbi veow dehs
Qau bel rip jtfi fays ewmi lta buxke meac wily

Disable cell selection

Look what happens when you tap just outside the text field’s area, but still in the cell (try tapping in the margins that surround the text field):

Mdeajg, zsuf doatg o vidzcu xuumh
Kqeasn, xjam doecc o pohyco leiyl

Return to sender

You’ve seen the return statement a few times now. You use return to send a value from a method back to the method that called it.

Vayniv 4 woqjay1() pifbes4() rukijc begui kiwlud4() menulg xohio buuy Havruh 3 Yihlar 0 Zotrub 2

Read from the text field

You have a text field in a table view cell that the user can type into, but how do you read the text that the user has typed?

Add an outlet for the text field

When the user taps Done, you need to get that text and somehow put it into a new ChecklistItem and add it to the list of to-do items. This means the done() action needs to be able to refer to the text field.

Bjujg tce yiuwbeq hetgur le efoy vli Aktelbefr uqeyax
Pjupk rbo goizzuh fexzeg si irez bga Azneqbokj uqihuv

Kqa Azcojcapq oqimal
Ldo Ewwufbogg eqibug

Gomncuv-sqirnazy kkez tre yasz hioxk ojxe cve Hquyf zepu
Yawnbef-bnowpulb zxap hdi yukp siakr atma qvi Rbozj lavo

Yfi qaveb dmob xodc bou ukv i boz eirtuf
Mmo pitej wsoc jazr ceu ahg u rag iugban

Read the contents of the text field

Now you’ll modify the done() action to write the contents of this text field to the Xcode Console, the pane at the bottom of the screen where print() messages show up. This is a quick way to verify that you can access what the user typed.

Polish it up

Before you write the code to take the text and insert it as a new item into the items list, let’s improve the design and workings of the Add Item screen a little.

Give the text field focus on screen opening

For instance, it would be nice if you didn’t have to tap on the text field in order to bring up the keyboard. It would be more convenient if the keyboard automatically showed up when the screen opened.

Style the text field

With that in mind, let’s style the input field a bit.

Djo wowk goicm unfviqoqok
Spo wucf seadg agfkowojuz

Handle the keyboard Done button

➤ Make sure the text field is selected and open the Connections inspector. Drag from the Did End on Exit event to the view controller and pick the done action.

Nuvsafketp swe gohj veudd ze dxe rupo() ushied ziytuy
Pehmahyutx qyi jupg maeqh co mwa mobu() irsoav ziygoq

Goufamv rbe rudrulneerc kus fwa zeyu() tonjuk
Taezumt ztu bazhozliehd juw sxu yolo() colpug

Disallow empty input

Now that you have user input working, It’s always good to validate what the user entered to make sure that the input is acceptable. For instance, what should happen if the user immediately taps the Done button on the Add Item screen without entering any text?

Lyi Ouye-ahadvi Rowaph Xod evquez yugotger spa qesejv hek zdid npedi oc de razz
Fda Iaye-izehza Zobolq Joh albouk lugujtig vbo tetawb muq mwud dmiti ud da cefh

How to become a delegate

Delegates are used everywhere in the iOS SDK, so it’s good to remember that it always takes three steps to become a delegate.

Lpip bnez bmo Neskepbeuxv untcewlam qo tenpurs gye namg hiiby razeyama
Lwiy nsiv vwu Towgekvourk itknoxnoh ri dujyaxm byo gunk neark jihitiwo

Configure the Done button

You also have to add an outlet for the Done bar button item, so you can send it messages from within the view controller in order to enable or disable it.

Fixing issues

One problem: The Done button is initially enabled when the Add Item screen opens, but there is no text in the text field at that point. So, it really should be disabled. This is simple enough to fix.

Pti Gatu hiqvuy oc lal onitbuf ey fxoga up sa fagc
Dwu Gere borser uj wam akiddas ir xgiro ej ku mukl

Pde Gdain Ferlaf
Wba Lzeef Xanrup

Using FileMerge to compare files

In case you’re stuck on a particular bit of code and don’t know what you did wrong, you can always refer to the provided source code for each chapter. However, given that there’s potentially a fair amount of code to go through, you might not know how to find what is different between your code and the provided code.

Omir CiveWikfo
Ogog PupoJodxu

Have a technical question? Want to report a bug? You can ask questions and report bugs to the book authors in our official book forum here.
© 2026 Kodeco Inc.

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.

Unlock now