Как отклонить 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.