如何从一个模态视图控制器添加新的表格单元格数据?
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 显示我的模态视图,因此我可以在文本字段中输入文本。添加单元格后,我只显示一串文本以上是关于如何从一个模态视图控制器添加新的表格单元格数据?的主要内容,如果未能解决你的问题,请参考以下文章
关闭表格视图控制器上方的模态显示视图控制器时,如何从表格视图控制器中取消选择行?