我在表视图控制器中创建了一个五列(文本框)单元格(行),并带有一个添加按钮选项。当用户单击“添加”按钮时,在具有空值的表视图控制器中添加具有五列(文本框)的新行(单元格)。我希望当用户填写文本框时,数据应该保存在数据库中,或者如果他更改了以前文本框中的任何数据,它也会被保存。
这是我的保存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的帮助。 感谢
答案 0 :(得分:1)
您尝试将表格视图单元格用作数据源,但这不起作用(除了设计不好)。问题是
[self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:row1 inSection:0]]
如果该行的单元格当前不可见,则返回nil
。 (表视图仅为可见行分配单元格,并在向上或向下滚动时重复使用这些单元格。)
您必须立即跟踪文本字段的更改,例如通过实施textFieldDidEndEditing:
委托功能,并将更改后的文本存储在数据源中。