I am trying to reset the UIPickerView
on button click.
My pickerview id is created at runtime, I have delegates set already.
After googling, I found
[pickerView reloadAllComponents];
But this makes my app crash everytime it reaches here.
Object at index 0 is "Select from list" and then the items. When the submit button is clicked, I want that the "Select from list" should remain at the top of my label (selected index: 0).
Here is my code
ViewDidload
pickerView = [[UIPickerView alloc] init];
pickerView.delegate = self;
pickerView.dataSource = self;
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
return 1;
}
// Total rows in our component.
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
return [nameArray count];
}
// Display each row's data.
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
return [nameArray objectAtIndex: row];
}
// Do something with the selected row.
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{
dlbl.hidden=YES;
NSLog(@"You selected this: %@", [nameArray objectAtIndex: row]);
[btnSelectDesigner setTitle:[nameArray objectAtIndex: row] forState:UIControlStateNormal];
}
and, on button click:
-(IBAction)btnSubmitClicked:(id)sender{
[pickerView reloadAllComponents];
}
Any idea what I'm doing wrong?
Thanks
[picker reloadAllComponents];
[picker selectRow:0 inComponent:0 animated:YES];
Swift version:
picker.selectRow(0, inComponent: 0, animated: true)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With