在表视图中添加新项:误解

时间:2011-07-13 12:20:48

标签: objective-c uitableview

我对tableviews不了解:如何在表格视图中添加新项目。

这就是我所做的:当我点击按钮“+”时,出现模态控制器,我们输入一个新项目,并且应该编辑表格视图,底部有一个新项目。在rootViewController中,我将tableWebsites可变数组附加到模态viewcontroller,因此我们有一个可变数组的副本,我们可以在这个副本的末尾添加新项:

ModifViewController *addView = [[ModifViewController alloc] initWithNibName:@"ModifViewController" bundle:nil];  
addView.tabWebSites = self.tabWebSites;  

最后,在rootViewController中,我们说:

[self.tableView reloadData];

所以我们在RootView中复制了可变数组...要在ModifView中编辑...但是tableview如何知道在ModifView中编辑的可变数组tableWebsites ...应该“填充”表视图?因为我们在RootView中有一个tableWebsites ...而在ModifView中有另一个tableWebsites ...以便编辑它。所以我认为:即使我们说“reloadData”,它也会在RootView中重新加载相同的可变数组。

你明白我的意思吗?我很抱歉,如果这是一团糟,我很难说清楚;)谢谢你的回答。

2 个答案:

答案 0 :(得分:1)

UITableView对象实际上是在询问他们的data sources要显示的值,以及部分的数量等等......将reloadData发送到表视图会使它重新询问这些值

所以我认为无论使用数组,数据源都是从中选取值,但这些方法应始终返回正确的值。

有用的链接:

Table View programming guide

UITableView class reference

UITableViewDataSource protocol reference

答案 1 :(得分:0)

您正在使用numberOfRowsInSection方法。它返回行数。参见该方法您是否使用过[tabWebSites count]?因此,在数组中添加值并再次返回Rootviewcontroller并执行[self.tableView reloadData]之后。它将再次执行所有TableView方法。