Как передать параметр через segue?
Для начала переопределяем следующую функцию для tableView и инициализируем переменную needValue (которую мы и будем передавать), после чего методом performSegueWithIdentifier: программно делаем переход на следующий viewController-(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
   needValue = idexPath.row; //Инициализируем номер ячейки
   [tableView deselectRowAtIndexPath:indexPath animated:true]; //Убираем select с ячейки, что бы при возвращении она не была выбрана
   [self performSegueWithIdentifier:@"schoolsToLogin" sender:nil]; //Инициализируем переход
}
Далее переопределяем метод prepareForSegue:, следующим образом:- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
   if ([segue.identifier isEqualToString:@"yourSegue"]) //Проверяем тот ли это segue, который нам нужен
    {
        nextViewController *nextController = (nextViewController *)segue.destinationViewController; //Создаем ссылку на viewController который будет вызван в результате segue
        
        [nextController setNeedValue: _needValue]; //инициализируем значение нужного viewController
    }
}
В этом коде мы создаем ссылку на следующий контроллер, где уже зарание подготовили переменную для хранения номера ячейки (needValue) и вызвав метод setNeedValue задаем ему значение, после чего можно использовать.
если использовать UITableViewController, то у него есть свойство clearsSelectionOnViewWillAppear и не надо будет руками деселектить