ios - 如何保存重新排列的表格 View 位置

标签 ios objective-c uitableview

我有一个表格 View ,可以通过按编辑并将单元格拖到新位置来重新排列。我遇到的问题是当应用程序关闭或您转到不同的 View Controller 然后返回 TableView 时,单元格已返回到其原始位置。这是我启用重新排列的代码:

- (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;

}

最佳答案

改变这个:

[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];

基本上,您不会重新插入数据,您只是将其删除。

为了在重新加载 View Controller 时保持顺序,您需要确保数组保存在某个地方。例如,可以将其保存到 plist 文件中。

引用:Apple docs

关于ios - 如何保存重新排列的表格 View 位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25554639/

相关文章:

ios - 空部分的 UITableView 策略并在自定义单元格中添加行

ios - 我应该如何对这个复杂的网格进行编程?

objective-c - 如何获取 UITableViewCell 的矩形大小?

ios - POST 的 AFNetworking 2.0 自定义 header

ios - 在 firebase 问题中手动输入数据

ios - 如何设置我的 iOS Storyboard以像 Instagram Stream 一样弹跳?

ios - 如何手动触发CLLocationManager更新?

ios - Firebase 错误,即使我不使用它

ios - 传递字符串时崩溃

objective-c - 如何获得到 CGPath 的距离以进行 HitTest ?