У меня есть табличное представление, в котором пользователь может добавить новую строку, содержащую два поля UITextField. Пользователь может добавить дату в каждое текстовое представление (или не добавлять дату, оставив ее пустой) с помощью UIDatePicker. Как только процесс будет завершен и все будет сохранено, пользователь сможет перейти к любой строке и обновить даты в этой строке. Проблема в том, что любая строка, предшествующая самой последней созданной строке, показывает обычную клавиатуру только тогда, когда пришло время редактировать. Кажется, мне не удается отобразить указатель даты, кроме последней сохраненной строки. Есть мысли о том, почему это происходит?
Вот как я настроил datepicker:
-(void)showDatePicker{
_datePicker = [[UIDatePicker alloc] init];
UIToolbar *toolbar = [[UIToolbar alloc]init];
[toolbar sizeToFit];
UIBarButtonItem *doneButton = [[UIBarButtonItem alloc]initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(done)];
doneButton.tintColor = [UIColor whiteColor];
UIBarButtonItem *flexibleSpaceLeft = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
toolbar.translucent = YES;
toolbar.barTintColor = [UIColor colorWithRed:8/255.0 green:46/255.0 blue:46/255.0 alpha:1];
[toolbar setItems:[NSArray arrayWithObjects:flexibleSpaceLeft,doneButton ,nil]];
[_readDateCell.startDateTextfield setInputAccessoryView:toolbar];
[_readDateCell.finishDateTextfield setInputAccessoryView:toolbar];
[_datePicker setDatePickerMode:UIDatePickerModeDate];
[_readDateCell.startDateTextfield setInputView:_datePicker];
[_readDateCell.finishDateTextfield setInputView:_datePicker];
}
Функция вызывается в двух местах - когда текстовое поле начинает редактирование и когда создается новая строка:
-(void)textFieldDidBeginEditing:(UITextField *)textField {
[self showDatePicker];
}
-(void)addNewRow {
[self showDatePicker];
}