Ответы пользователя по тегу Objective-C
  • Как передать параметр через 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 задаем ему значение, после чего можно использовать.
    Ответ написан
    6 комментариев
  • Как вызвать segue из tableviewcontroller?

    Я не знаю, мб есть и другой способ, но я делаю так: описываю следующую функцию и вызываю в ней нужный мне segue

    -(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    {
        [tableView deselectRowAtIndexPath:indexPath animated:true];
        [self performSegueWithIdentifier:@"segue" sender:nil];
    }
    Ответ написан