0

ボタンを追加するオプションを使用して、テーブル ビュー コントローラーに 5 列 (テキスト ボックス) のセル (行) を作成しました。ユーザーが追加ボタンをクリックすると、5 つの列 (テキスト ボックス) を持つ新しい行 (セル) が、null 値を持つテーブル ビュー コントローラーに追加されます。ユーザーがテキスト ボックスに入力したときにデータをデータベースに保存するか、以前のテキスト ボックスのデータを変更すると保存されるようにしたいと考えています。

これは私のsave 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 に答える