Как я могу отклонить два viewcontrollers с навигационным контроллером? - PullRequest
0 голосов
/ 13 марта 2019

У меня есть три соответствующих представления, все они связаны с навигационным контроллером, с push-segues (также я сохранил массивы, используя подготовку для перехода со всеми тремя). Поэтому я хочу использовать dismiss, так как я не хочу изменять уже существующие хранимые массивы, которые используются в viewcontrollers.

Итак, я в viewcontroller C, и я пытаюсь вернуться к A.

До этого момента я использовал self.dismiss(animated: true, completion: nil), который прекрасно работает при отклонении от просмотра B, но я хочу перейти к A.

Я также пытался использовать:

let presentingViewController = self.presentingViewController
presentingViewController?.presentingViewController?.presentingViewController?.dismiss(animated: false, completion: nil)

Однако это не работает, и выдает эту ошибку:

pushViewController: animated: вызывается во время существующего перехода или презентации; стек навигации не будет обновлен.

Есть какое-нибудь решение для этого?

Причина, по которой я хочу перейти к viewcontroller A, заключается в том, что существует ошибка в Viewcontroller B, когда что-то обновляется на Viewcontroller C, поэтому временное решение - просто перейти к A и перезагрузить просмотр таблицы.

1 Ответ

0 голосов
/ 13 марта 2019

Вызовите setViewControllers(_:animated:) на контроллере навигации, передав массив, содержащий только контроллер представления А. Поскольку контроллер представления А уже находится в стеке, анимация будет всплывающей.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...