I have an iPhone database app that loads a UIPickerView
with data from a table. I want to set the selected row to a particular row from the data in another table.
For example: Let's say I have a UIPickerView
that is loaded with X number of names of the iPhone users' friends (the number of names is variable; it could be 1 or 1000 and all are entered into the database by the user). The iPhone user has a preference set that their current best friend is TED. I want the UIPickerView
to be position to TED when displayed.
Where do I call selectRow
?
I tried in viewDidAppear
, but it was never called, in titleForRow
which caused all kinds of strange behavior. viewDidLoad
and viewWillAppear
are out of the question, because I don't know what's in the datasource to the picker yet.
Call it after you retrieve the data. I don't know where you load the data so this is just a mockup of what should work. If this doesn't make sense, let me know where you are loading data so I can piece it together in my head :)
-(void)viewDidLoad
{
// load data from sql
// self.someDataArray = DATAFROMSQL
[picker reloadAllComponents];
[picker selectRow:0 inComponent:0 animated:YES];
}