在表视图控制器中的文本框中保存核心数据

时间:2012-08-25 07:18:01

标签: uitableview core-data

我在表视图控制器中创建了一个五列(文本框)单元格(行),并带有一个添加按钮选项。当用户单击“添加”按钮时,在具有空值的表视图控制器中添加具有五列(文本框)的新行(单元格)。我希望当用户填写文本框时,数据应该保存在数据库中,或者如果他更改了以前文本框中的任何数据,它也会被保存。

这是我的保存btn编码..

- (IBAction)btn_save:(id)sender
{
    NSInteger noOfRow=[(NSSet *)[projectObject valueForKey:@"rs_project_Input"] count];
    NSLog(@"Save Btn: No of rows for saving %d",noOfRow);
    for (row1=0; row1<noOfRow; row1++)
    {
        NSLog(@"Row is %d",row1);

        path = [NSIndexPath indexPathForRow:row1 inSection:0];

        Input_Details *inputDetailsObject1=[[self sortInputs] objectAtIndex:path.row];
        /*
          Update the input details from the values in the text fields.
        */
        EditingTableViewCell *cell;

        cell = (EditingTableViewCell *)[self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:row1 inSection:0]];
        inputDetailsObject1.mh_Up= cell.cell_MH_up.text;
        inputDetailsObject1.mh_down=cell.textField.text;
        NSLog(@"Saving the MH_up value %@ is saved in save at index path %d",inputDetailsObject1.mh_Up,row1);

        [masterController saveContext];
    }
    [self.tableView reloadData];
}

我的问题是代码无法帮助保存数据。 Plz的帮助。 感谢

1 个答案:

答案 0 :(得分:1)

您尝试将表格视图单元格用作数据源,但这不起作用(除了设计不好)。问题是

[self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:row1 inSection:0]]
如果该行的单元格当前不可见,则

返回nil。 (表视图仅为可见行分配单元格,并在向上或向下滚动时重复使用这些单元格。)

您必须立即跟踪文本字段的更改,例如通过实施textFieldDidEndEditing:委托功能,并将更改后的文本存储在数据源中。