Swift version: 5.6
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:
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.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 50% To celebrate Black Friday, all our books and bundles are half price, so you can take your Swift knowledge further without spending big! Get the Swift Power Pack to build your iOS career faster, get the Swift Platform Pack to builds apps for macOS, watchOS, and beyond, or get the Swift Plus Pack to learn advanced design patterns, testing skills, and more.
Sponsor Hacking with Swift and reach the world's largest Swift community!
Available from iOS 2.0
This is part of the Swift Knowledge Base, a free, searchable collection of solutions for common iOS questions.
Link copied to your pasteboard.