尝试从UITableViewController文本框中保存Core Data中的数据

时间:2012-09-04 12:28:46

标签: ios uitableview core-data uitextfield

我有一个表视图控制器,连续有5个文本框,当我们点击添加按钮时,它们会添加空值。

我正在尝试通过Core Data将数据保存在数据库中。

我的问题是,当我点击文本框并完成输入值并通过触摸屏时,当我尝试将数据放到另一个文本框但不允许我输入文本直到我按键盘上的Return键。

以下是我对文本框的编码:

- (void)textFieldDidEndEditing:(UITextField *)textField

{

   row1=textField.tag;

    NSLog(@"Row is %d",row1);

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

    Input_Details *inputDetailsObject1=[self.fetchedResultsController objectAtIndexPath:path];

    /*
     Update the Input Values 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.cell_MH_dn.text;
    inputDetailsObject1.sewer_No=[NSNumber numberWithInt:[cell.cell_Sewer_No.text intValue]];
    inputDetailsObject1.mhup_gl=[NSNumber numberWithFloat:[cell.cell_gl_MHUP.text floatValue]];
    inputDetailsObject1.mhdn_gl=[NSNumber numberWithFloat:[cell.cell_gl_MHDN.text floatValue]];
    inputDetailsObject1.pop_Ln=[NSNumber numberWithInt:[cell.cell_Line_pop.text intValue]];
    inputDetailsObject1.sew_len=[NSNumber numberWithFloat:[cell.cell_Sewer_len.text floatValue]];
    [self saveContext];
    [textField resignFirstResponder];
    NSLog(@"Saving the MH_up value %@ is saved in save at index path %d",inputDetailsObject1.mh_Up,row1);




}

-(void)saveContext

{

NSManagedObjectContext *context = [self.fetchedResultsController managedObjectContext];

 NSError *error = nil;

if (![context save:&error]) 

{

        NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
        abort();
    }


}

Here is a picture表格视图和文本框。

1 个答案:

答案 0 :(得分:0)

didEndEditing表示您按下了返回键或将响应者移动到另一个对象。

如果要通过其他机制移动到下一个文本框,则需要实现其他一些委托方法。例如,每次更改文本字段中的字符时,此方法textField:shouldChangeCharactersInRange:replacementString:都会触发。例如,您可以根据输入使用它来更改响应者。

告诉下一个文本框成为您调用[mySecondField becomeFirstResponder]的第一个响应者。

希望这会有所帮助。