2014-08-28 85 views
0

我有一個表格視圖,可以通過按編輯並將單元格拖動到新的位置來重新排列。我遇到的問題是應用程序關閉或者您轉到其他視圖控制器,然後返回到表格視圖時,單元格已恢復到原始位置。這裏是我的代碼,以便重新排列:如何保存重新排列的表格視圖位置

- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath 
{ 
    [arrayData removeObjectAtIndex:fromIndexPath.row]; 
    [arrayData removeObjectAtIndex:toIndexPath.row]; 
} 

// Override to support conditional rearranging of the table view. 
- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    // Return NO if you do not want the item to be re-orderable. 
    return YES; 

} 
+0

退房這個答案的正確引導。 http://stackoverflow.com/questions/17593068/getting-the-order-of-reordered-uitableviewcells – 2014-08-28 17:49:47

回答

0

更改此:

[arrayData removeObjectAtIndex:fromIndexPath.row]; 
[arrayData removeObjectAtIndex:toIndexPath.row]; 

爲了這樣的事情:

NSString *stringToMove /*or whatever*/ = [arrayData objectAtIndex:fromIndexPath.row]; 
[arrayData removeObjectAtIndex:fromIndexPath.row]; 
[arrayData insertObject:stringToMove atIndex:toIndexPath.row]; 

基本上,你不能再插入數據,你只是刪除它。

要保持視圖控制器重新加載時的順序,您需要確保數組保存在某處。例如,將其保存爲plist文件可能有效。

參考:Apple docs

+0

我已經添加了該代碼,但它仍然無法正常工作。我正在使用核心數據來保存信息,這是否會導致問題? – Chris1994 2014-08-28 17:58:02

+0

是否在重新加載表視圖之前從核心數據中抽取信息? – rebello95 2014-08-28 18:06:31

+0

我重新加載viewdidappear中的表視圖,因爲用戶從另一個視圖控制器輸入數據,然後當表視圖出現時它會加載數據。 – Chris1994 2014-08-28 18:15:22

相關問題