Не уверен насчет использования сегментов, но я часто хочу обновить данные, когда появляется контроллер представления. Однако, если вы перезагрузите таблицу, вы очистите строку выбора. Вот некоторый код, который я использую для поддержания выбранной строки и отображения отмены выбора анимации при возврате. Возможно, это поможет вам, поэтому я опубликую это здесь.
-(void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
NSIndexPath *indexPath = [tableView indexPathForSelectedRow];
[tableView reloadData];
if(indexPath) {
[tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];
}
}
-(void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
NSIndexPath *indexPath = [tableView indexPathForSelectedRow];
if(indexPath) {
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}
}