使用UITableViewController,我在其中显示一些基于make year排序的产品。每当用户点击一行(每行代表一个产品)时,就会显示一个新视图来编辑同一产品。
因此,在保存之后,如果用户更改了制作年份,那么它应该在主表视图中的适当位置显示(即相应地再次排序)。 为了实现这一点,我在...中调用sort()方法,这里sort方法返回NSMutableArray类型的对象。
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// Sort the records based on number of days.
sortedProducts = [DTOConverter sort:unsortedProducts];
return [sortedProducts count];
}
但问题是,在表格视图中,我仍然在该特定行中使用旧值,直到我弹回整个视图,然后它会填充新的更新值。
如果添加新产品,也会发生同样的事情。 请纠正我在哪里做错了,我确信这个问题可能与indexPath有关,但我不知道如何处理它。请帮忙。谢谢。
答案 0 :(得分:2)
更新tableview数据调用
[tableView reloadData];
答案 1 :(得分:0)
您必须使用以下方法之一刷新表或单个行:
请参阅有关每种方法的文档:UITableView Class Reference
注意:如果您只更新一行,请不要调用[tableView reloadData]。没有必要重新加载表中的所有数据。
答案 2 :(得分:0)
您可能必须在从tableview加载的新视图中设置委托,然后设置tableviewcontroller以实现该新viewcontroller的委托方法。然后从该委托方法调用重新加载数据以下是委托的示例:Delegate example