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

Posted

技术标签:

【中文标题】如何从一个模态视图控制器添加新的表格单元格数据?【英文标题】:How do I add new table cell data from one modal view controller? 【发布时间】:2012-11-30 03:31:53 【问题描述】:

这是我目前的流程:

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

感谢任何建议!非常感谢!

【问题讨论】:

【参考方案1】:

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

[_myTableView reloadData]; 

【讨论】:

_dataArray 是我要添加的 NSMutableArray。只是不知道如何将事物分开。 对不起,我一开始没有注意到。我们可以看看你的 EducationViewController 吗? 您正在收集数据的地方。我猜是 UITextFields?【参考方案2】:

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

[_myTableView reloadData];

阅读整个表格。

【讨论】:

我在 viewWillAppear 中调用 reloadData。 goToModalView 显示我的模态视图,因此我可以在文本字段中输入文本。添加单元格后,我只显示一串文本

以上是关于如何从一个模态视图控制器添加新的表格单元格数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何从自定义表格视图单元类中获取对表格视图控制器的引用

关闭表格视图控制器上方的模态显示视图控制器时,如何从表格视图控制器中取消选择行?

如何将表格视图单元格从一个表格视图移动到新的表格视图

如何使用自定义表格视图单元格中识别的点击手势从 UILabel 呈现视图控制器?

通过选择表格视图单元格创建新视图

如何从弹出视图控制器获取数据到自定义表格视图单元格?