我正在尝试修改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。
任何人都可以帮助我吗?
答案 0 :(得分:0)
为了重新排序表视图,您应首先重新排序填充它的数据源,然后重新加载部分或整个表视图。通常,此数据存储在数组中,并在方法cellForRowAtIndexPath
中检索。
对于您提到的教程,包含数据的数组似乎是_bugs
。如果你看一下他如何删除一行,在tableView:commitEditingStyle:forRowAtIndexPath
中他首先删除数组中的元素,然后删除表视图中的行。
因此,总而言之,当您想要重新排序表视图时应该执行的操作是:
[tableView reloadData]
,以便tableView刷新其数据。我希望这能帮到你,
欢呼声
答案 1 :(得分:0)
而不是使用removeobject然后再次替换它尝试使用这个...'
[translations exchangeObjectAtIndex:fromindex withObjectAtIndex:toindex];