0

これが私が現在持っているプロセスです:

1) [追加] ボタンをタップします 2) モーダル ビュー コントローラーで UITextFields に入力します 3) [保存] ボタンをタップします 4) データが UITableViewCell に追加されます 5) 手順 1 ~ 3 を繰り返します 6) 新しいデータが 2 番目のセルに追加されますが、両方のセルにデータが追加されますセルは新しい入力からのものです

同じモーダル ビュー コントローラーを使用して新しいデータを追加し、それを以前のセルに保持し、それらのセルをタップしたときにデータを表示するにはどうすればよいですか?

モーダルView Controllerにアクセスしてデータを追加するプロセスは次のとおりです。

 -(IBAction)goToModalView:(id)sender
 {
    if (self.educationViewController == nil)
    {
        EducationViewController * temp = [[EducationViewController alloc] initWithNibName:@"EducationViewController" bundle:[NSBundle mainBundle]];
        self.educationViewController = temp;

        _dataArray = [[NSMutableArray alloc] init];
        [_dataArray addObject:temp];
    }
    else
    {
        [self addEducation:sender];
    } 

    [self presentViewController:self.educationViewController animated:YES completion:nil];
}

-(IBAction)addEducation:(id)sender
{
    [_myTableView beginUpdates];
    [_dataArray addObject:self.educationViewController.majorString];
    NSArray * paths = [NSArray arrayWithObject:[NSIndexPath indexPathForRow:[_dataArray count]-1 inSection:0]];
    [_myTableView insertRowsAtIndexPaths:paths withRowAnimation:UITableViewRowAnimationTop];
    [_myTableView endUpdates];
}

モーダルビューコントローラーでテキストを保存する場所は次のとおりです。

 -(IBAction)saveData
 {
     if (_majorTextField.text == nil)
     {
        _majorString = @"";
     }
     else
     {
        _majorString = [[NSString alloc] initWithFormat:@"%@", _majorTextField.text];
        [_majorTextField setText:_majorString];
        NSUserDefaults * majorDefault = [NSUserDefaults standardUserDefaults];
        [majorDefault setObject:_majorString forKey:@"major"];
     }
     // Other text field code here

     [self dismissViewControllerAnimated:YES completion:nil];
 }

どんなアドバイスでも大歓迎です!どうもありがとう!

4

2 に答える 2

0

goToModalView() で「[_dataArray addObject:temp];」を実行する理由がわかりません。しかし、それはそのままにしておきます。addEducation() では、

[_myTableView reloadData];

表全体を読む。

于 2012-11-30T03:45:01.730 に答える
0

データを UITableView に直接追加する代わりに、NSMutableArray に追加します。次に、その配列をテーブルのデータソースとして使用し、保存ボタンが押された後に呼び出します

[_myTableView reloadData]; 
于 2012-11-30T03:38:26.670 に答える