2012-05-19 84 views
0

核心數據 - 重新排序TableView不會保存

你好,

我有以下代碼來設置的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]; 

之前它出現在我的視野。

有沒有類似的東西,我需要設置與重新排序的表視圖,以保存?

數據是從核心數據數據庫中提取的。

回答

1

爲了持久化對象的順序恐怕你將需要爲添加屬性到你的數據模型。只需使用int/[NSNumber]並在移動表格視圖行時在循環中重新計算它們。

+0

您可能還想在查看行被刪除時重新計算索引等。 – fatuhoku

0

當您重新加載數據時,是否將您的Core Data實體的提取結果重新填充到該數組中?如果是這樣,您對陣列所做的更改(我認爲是電視的數據源)將被吹走。如果你想要這些改變堅持下去,你需要以某種方式更新模型,以確保按照你需要的方式將數組重新填充到數組中。