NEW: Nominations are now open for the 2019 Swift Community Awards! >>

How to read a title from a UIPickerView using titleForRow

Swift version: 5.1

Paul Hudson    @twostraws   

As soon as you start using UIPickerView for the first time, you realize it doesn't have a built-in way to read the title of any of its items. The reason for this is obvious in retrospect, but don't worry if you didn't get it at first: you should read the title straight from the picker's data source.

You should already have conformed to the UIPickerViewDataSource and UIPickerViewDelegate protocols, which means implementing the titleForRow picker view method. If you want to read the title of the selected item later, you can do one of the following:

  • Read straight from the array you used to populate the picker view. This is the most common method, but of course it only works if the data is simple.
  • Write a new method named something like titleForPickerRow() that you can use in your data source and to read the title later. This is preferred if it takes some work to calculate row titles, but really it's better to cache this kind of thing if the work is non-trivial.
  • Use the same method call as the picker view: pickerView(_:titleForRow:forComponent:). Yes, that just calls the method you implemented, but it's neat and self-describing so as long as your data doesn't take time to calculate this is fine to use.

If you want to try the last option, here's some example code:

let title = pickerView(yourPickerView, titleForRow: 0, forComponent: 0)

SAVE 20% ON iOS CONF SG The largest iOS conference in Southeast Asia is back in Singapore for the 5th time in January 2020, now with two days of workshops plus two days of talks on SwiftUI, Combine, GraphQL, and more! Save a massive 20% on your tickets by clicking on this link.

Available from iOS 2.0

Similar solutions…

About the Swift Knowledge Base

This is part of the Swift Knowledge Base, a free, searchable collection of solutions for common iOS questions.

Buy Testing Swift Buy Practical iOS 12 Buy Pro Swift Buy Swift Design Patterns Buy Swift Coding Challenges Buy Server-Side Swift (Vapor Edition) Buy Server-Side Swift (Kitura Edition) Buy Hacking with macOS Buy Advanced iOS Volume One Buy Advanced iOS Volume Two Buy Hacking with watchOS Buy Hacking with tvOS Buy Hacking with Swift Buy Dive Into SpriteKit Buy Swift in Sixty Seconds Buy Objective-C for Swift Developers Buy Beyond Code

Was this page useful? Let us know!

Average rating: 4.3/5