Как отклонить viewController с раскадрой из push-сегу?

Я не знаю, почему dismissViewControllerAnimated:completion:. Я просто хочу это сделать.

Я начинаю с

[self performSegueWithIdentifier:@"my_segue" sender:self];

Но я называю увольнение, чем ничего не происходит. Я могу создать другой segue, но он создает новый контроллер представления.

Мой вопрос: как отклонить performSegueWithIdentifier:sender:?

Ответ 1

У вас есть navigationBar в viewController, вызывающий:

[self performSegueWithIdentifier:@"my_segue" sender:self];

Если это так, вам нужно будет использовать:

[self.navigationController popViewControllerAnimated:YES];

чтобы вывести представление из стека. Там один вызов segue, но структура, похоже, вызывает:

presentViewController:animated:completion:

или

pushViewController:animated:

по мере необходимости.

Луч

Ответ 2

Вы можете просто позвонить

[self dismissViewControllerAnimated:YES completion:nil];

из контроллера вида, поскольку контроллер представления был нажат на сегмент.

Ответ 3

[my_segue_view_controller dismissModalViewControllerAnimated: YES]?

(не уверен, но он работает в моей практике)

Ответ 4

performSegueWithIdentifier:sender: сам не уволен, это просто метод, вызываемый для инициации имени segue. Что происходит в segue, представляет большой интерес.

Вы правы, что вы должны называть dismissViewControllerAnimated:completion:, и он должен вызываться контроллером представления представления, который ранее называл представленный контроллер представления, используя presentViewController:animated:completion:. Для получения дополнительной информации см. документы UIViewcontroller.