如何从一个模态视图控制器添加新的表格单元格数据?

时间:2012-11-30 03:31:53

标签: objective-c uitableview modalviewcontroller reloaddata

以下是我目前的流程:

1)点按添加按钮 2)在我的模态视图控制器中填写UITextFields 3)点击“保存”按钮 4)将数据添加到UITableViewCell 5)重复步骤1 - 3 6)新数据被添加到第二个单元格,但两个单元格中的数据都来自新输入

如何使用相同的模态视图控制器添加新数据,并将其保留在我之前的单元格中,甚至在点击这些单元格时查看数据?

这是我进入模态视图控制器并向其添加数据的过程:

 -(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];
 }

任何建议表示赞赏!非常感谢!

2 个答案:

答案 0 :(得分:0)

我不会将数据直接添加到UITableView,而是将其添加到NSMutableArray中。然后我会使用该数组作为表的数据源,按下保存按钮后,我会调用

[_myTableView reloadData]; 

答案 1 :(得分:0)

我不明白goToModalView()为什么要做“[_dataArray addObject:temp];”。但请保留,在addEducation()中,您可以使用

[_myTableView reloadData];

阅读整个表格。