UITableViewController没有更新内容是我应用手动排序

时间:2013-04-02 19:52:52

标签: iphone ios uitableview sorting nsindexpath

使用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有关,但我不知道如何处理它。请帮忙。谢谢。

3 个答案:

答案 0 :(得分:2)

更新tableview数据调用

[tableView reloadData];

答案 1 :(得分:0)

您必须使用以下方法之一刷新表或单个行:

  • reloadData
  • reloadRowsAtIndexPaths:withRowAnimation
  • reloadSections:withRowAnimation
  • reloadSectionIndexTitles

请参阅有关每种方法的文档:UITableView Class Reference

注意:如果您只更新一行,请不要调用[tableView reloadData]。没有必要重新加载表中的所有数据。

答案 2 :(得分:0)

您可能必须在从tableview加载的新视图中设置委托,然后设置tableviewcontroller以实现该新viewcontroller的委托方法。然后从该委托方法调用重新加载数据以下是委托的示例:Delegate example