@MagoVinch

Как передать параметр через segue?

Необходимо передать индекс ячейки в tableview через segue.
Или как то сохранить в синглтоне.

Как?
  • Вопрос задан
  • 4141 просмотр
Решения вопроса 1
Для начала переопределяем следующую функцию для 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 задаем ему значение, после чего можно использовать.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
если использовать UITableViewController, то у него есть свойство clearsSelectionOnViewWillAppear и не надо будет руками деселектить
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы