保存tableview的重新排序 - Ray Wenderlich教程

时间:2011-03-06 10:53:17

标签: iphone tableview

我正在尝试修改Ray Wenderlich创建的教程: http://www.raywenderlich.com/1888/how-to-create-a-simple-iphone-app-tutorial-part-33 这样我就可以重新排序tableview并保存bug的新顺序,但是我无法让它工作。

我知道我必须使用:

- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath { };

方法,但我很难搞清楚要做什么!

我试过直接向Ray提问,但没有得到答案。如果有人能帮助我,我会很高兴: - )

更新:

我已经解决了使用以下命令编辑_bugs数组的部分:

NSString *stringToMove = [[_bugs objectAtIndex:fromIndexPath.row] retain]; 
[_bugs removeObjectAtIndex:fromIndexPath.row]; 
[_bugs insertObject:stringToMove atIndex:toIndexPath.row]; 
[stringToMove release];

但我仍然无法重命名单个文件或我必须做的事情,以便以正确的顺序加载_bugs。

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

为了重新排序表视图,您应首先重新排序填充它的数据源,然后重新加载部分或整个表视图。通常,此数据存储在数组中,并在方法cellForRowAtIndexPath中检索。

对于您提到的教程,包含数据的数组似乎是_bugs。如果你看一下他如何删除一行,在tableView:commitEditingStyle:forRowAtIndexPath中他首先删除数组中的元素,然后删除表视图中的行。

因此,总而言之,当您想要重新排序表视图时应该执行的操作是:

  1. 重新排序数组:Here您可以看到如何实现这一目标。
  2. 调用方法[tableView reloadData],以便tableView刷新其数据。
  3. 我希望这能帮到你,

    欢呼声

答案 1 :(得分:0)

而不是使用removeobject然后再次替换它尝试使用这个...'

[translations exchangeObjectAtIndex:fromindex withObjectAtIndex:toindex];
相关问题