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

データをリロードするとき、その配列に Core Data エンティティからのフェッチの結果を再入力していますか? もしそうなら、あなたが配列に加えた変更は吹き飛ばされます. これらの変更を維持したい場合は、モデルを何らかの方法で更新して、配列の再作成により、配列が必要な方法でインデックス付けされるようにする必要があります。

于 2012-05-20T03:23:41.997 に答える