2011-03-06 25 views
1

我想修改Ray Wenderlich创建的教程: http://www.raywenderlich.com/1888/how-to-create-a-simple-iphone-app-tutorial-part-33 这样我就可以重新排序tableview并保存错误的新顺序,但是我很难得到它上班。保存tableview的重新排序 - Ray Wenderlich教程

我知道我必须使用:

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

方法,但我有一个很难搞清楚该怎么办!

我试过直接询问这个问题,但没有得到答案。如果有人能帮助我,我将:-)这么开心

UPDATE:

我已经解决了一部分,我用编辑_bugs阵列:

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

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

任何人都可以帮助我吗?

+0

基本上什么你试图做? 重新加载tableview? – 2011-03-06 11:01:25

+0

我正在尝试对表格视图进行重新排序,然后保存该顺序。 – CCDEV 2011-03-06 11:42:08

回答

0

为了对表格视图重新排序,您应该先将数据源重新排序,然后重新加载部分或整个表格视图。通常,这些数据存储在一个数组中,并通过方法cellForRowAtIndexPath进行检索。

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

所以,总结一下,当你要重新排序表视图,你应该做的是:

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

我希望这有助于你,

欢呼

+0

@Francisco Sevillano嗨弗朗西斯科,感谢您的回复,让我朝着正确的方向:)但是我似乎无法重新排列阵列。如何确定插入移动的行的位置?谢谢:) – CCDEV 2011-03-06 15:00:45

+0

你想让用户重新排序表视图还是以编程方式执行?我的答案适用于第二种情况,但如果您想让用户重新排序错误,则应该查看此http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/TableView_iPhone/ManageReorderRow /ManageReorderRow.html#//apple_ref/doc/uid/TP40007451-CH11-SW1 – 2011-03-06 15:14:07

+0

@Francisco Sevillano我正在寻找一种让用户重新排序tableview的方法。我之前一直在尝试实现Apple Samplecode,但我很难让它工作。但我会再试一次:)谢谢... – CCDEV 2011-03-06 21:42:47

0

而不是使用的removeObject,然后再替换它尝试使用这个的......”

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