У меня есть подкласс UITableViewController, который я использую, чтобы добавить новые данные для новой ячейки в другой таблице. Это означает, что у меня есть кнопка «Отмена» и кнопка «Сохранить» вверху, чтобы сохранить данные и вернуться к таблице, в которую нужно добавить новый объект. Я показываю добавление контроллера модально.
Моя проблема заключается в том, что я не знаю, как получить данные из ячеек пользовательского ввода tableView в моем подклассе UITableViewController, чтобы сохранить их в моем файле CoreData.
Вот код, как я это пробую - но на консоли я просто получаю (ноль) имя человека:
- (void)save
{
NSLog(@"Saving ...");
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
UITableViewCell *cell = [self tableView:[self tableView] cellForRowAtIndexPath:indexPath];
NSString *personName = [[cell textField] text];
NSLog(@"New Person: %@", personName);
// Do saving with Core Data and updating here.
[self dismissModalViewControllerAnimated:YES];
}
Я думаю, вам также понадобится следующий метод, чтобы понять проблему:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
EditableDetailCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[EditableDetailCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
cell.accessoryType = UITableViewCellAccessoryNone;
if (indexPath.section == 0) {
[cell.textField setPlaceholder:@"Name"];
} else {
switch (indexPath.row) {
case 0:
[cell.textField setPlaceholder:@"Birth Year"];
break;
case 1:
[cell.textField setPlaceholder:@"Weight in kg"];
break;
case 2:
[cell.textField setPlaceholder:@"Height in cm"];
break;
case 3:
[cell.textField setPlaceholder:@"Sex"];
break;
default:
break;
}
}
return cell;
}
Я действительно не могу найти ошибку. В моем понимании это должно работать так ... но это не так. Может ли кто-нибудь помочь, пожалуйста?