0

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

这是我保存的 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];
}

我的问题是代码无助于保存数据。请帮忙。谢谢

4

1 回答 1

1

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

[self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:row1 inSection:0]]

nil如果该行的单元格当前不可见,则返回。(表格视图只为可见行分配单元格,并在您向上或向下滚动时重复使用这些单元格。)

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

于 2012-08-25T07:53:02.920 回答