0

.

你好,

我有以下代码来设置 tableView 的重新排序。

#pragma mark Row reordering
// Determine whether a given row is eligible for reordering or not.
- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath {
return YES;
}
// Process the row move. This means updating the data model to <span id="IL_AD6" class="IL_AD">correct</span> the item indices.
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath
  toIndexPath:(NSIndexPath *)toIndexPath {
NSString *item = [arr objectAtIndex:fromIndexPath.row];
[arr removeObject:item];
[arr insertObject:item atIndex:toIndexPath.row];


}

但是,当我重新加载 TableView(注意不是 TableViewController)时,顺序会恢复到我更改任何内容之前的状态。

现在,当我为这个视图设置编辑(删除按钮)时,我必须添加这一行:

[self.mainTableView setEditing:YES animated:YES];

在它出现在我的视野之前。

我需要设置类似的东西来重新排序表格视图以保存它吗?

数据是从 Core Data 数据库中获取的。

4

2 回答 2

1

为了保持对象的顺序,恐怕您需要为您的数据模型添加一个属性。只需使用int/[NSNumber]并在移动表视图行时循环重新计算它们。

于 2012-05-20T07:46:02.047 回答
0

当您重新加载数据时,您是否使用从核心数据实体中获取的结果重新填充该数组?如果是这样,您对数组(我假设它是电视的数据源)所做的更改将被吹走。如果您希望保留这些更改,则需要以某种方式更新模型,以确保重新填充数组会导致数组以您需要的方式被索引。

于 2012-05-20T03:23:41.997 回答