Для начала переопределяем следующую функцию для 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 задаем ему значение, после чего можно использовать.