You can save the current selection with
NSIndexPath *selectedRow = [self.tableView indexPathForSelectedRow];
before rebooting and select it again with
if (selectedRow) { [self.tableView selectRowAtIndexPath:selectedRow animated:NO scrollPosition:UITableViewScrollPositionNone]; }
after reboot. The cell position does not change unless you call insertRowsAtIndexPaths: or deleteRowsAtIndexPaths:
source share