18

選択可能な行を含むテーブル ビューがあります。テーブル ビューをリロードすると、いくつかの新しい行が追加 (または削除) され、テーブル ビューのセルのラベルが変更されることがあります。それが私が呼び出すことによって達成したいことです[tableView reloadData]

残念ながら、その方法では、選択を含むテーブル ビューの状態全体もクリアされます。しかし、私は選択を維持する必要があります。

では、選択した行を選択したまま、テーブル ビューのすべてのデータを再読み込みするにはどうすればよいでしょうか?

4

5 に答える 5

25

選択した行のインデックス パスを次のように保存できます。

rowToSelect = [yourTableView indexPathForSelectedRow];

データをリロードする前に。そしてリロード後に使用:

[yourTableView selectRowAtIndexPath:rowToSelect animated:YES scrollPosition:UITableViewScrollPositionNone];
于 2013-10-21T23:47:43.580 に答える
11

JeroVallis ソリューションは、単一選択テーブル ビューで機能します。彼のアイデアに基づいて、これは私が複数選択で機能させる方法です:

NSArray *selectedIndexPaths = [self.tableView indexPathsForSelectedRows];
[tableView reloadData];
for (int i = 0; i < [selectedIndexPaths count]; i++) {
    [tableView selectRowAtIndexPath:selectedIndexPaths[i] animated:NO scrollPosition:UITableViewScrollPositionNone];
}
于 2013-10-22T00:12:52.447 に答える