Убедитесь, что у вас есть объект выбора в IB, если это то, что вы используете, затем создайте ссылку на IBOutlet и подключите его к объекту IB. Я устанавливаю свой pickerView скрытым в IB и делаю его видимым, когда это необходимо. В противном случае вы можете просто создать экземпляр по мере необходимости.
В вашем didSelectRowAtIndexPath вы можете попробовать приведенный ниже код и посмотреть, что произойдет.
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if (**your cell/section selection logic here**) {
[self.view endEditing:YES]; // resign firstResponder if you have any text fields so the keyboard doesn't get in the way
[self.tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionTop animated:YES]; // Scroll your row to the top so the user can actually see the row when interacting with the pickerView
// Pickerview setup
[self.typePicker setCenter:CGPointMake(150, 500)]; // place the pickerView outside the screen boundaries
[self.typePicker setHidden:NO]; // set it to visible and then animate it to slide up
[UIView beginAnimations:@"slideIn" context:nil];
[self.typePicker setCenter:CGPointMake(150, 250)];
[UIView commitAnimations];
}
}
После этого вам нужно реализовать метод pickerView:didSelectRow:
, если вы хотите обновить метку своей ячейки при изменении выбора вида средства выбора ...
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
// Your code to get the current table view cell and update it with the data from your pickerView
}
Убедитесь, что ваш viewController объявлен как делегат для tableView <UITableViewDelegate>
, а также для pickerView `'
Это должно дать вам хороший старт. Дайте мне знать, если у вас есть какие-либо вопросы и т. Д.
Ура,
Рог