Во-первых, вы можете сохранить выбранный indexPath по умолчанию для пользователя в методе didSelectRowAtIndexPath (возможно, вы можете сохранить indexPath, который больше, чем количество строк в табличном представлении, чтобы указать этап инициализации, что означает, что ни одна строка никогда не была выбрана)
затем вы можете загрузить сохраненный indexPath в методе viewDidLoad, используя
tableView selectRowAtIndexPath:<#(NSIndexPath *)#> animated:<#(BOOL)#> scrollPosition:<#(UITableViewScrollPosition)#>
тем временем, вы можете сделать некоторую проверку (как упомянуто выше или что-то еще), чтобы проверить, не выбрано ли еще ничего. (Сохранение bool в пользовательских настройках по умолчанию тоже работает)