Как я могу вернуться к моему предыдущему контроллеру, используя poptoviewcontroller - PullRequest
0 голосов
/ 07 января 2020

У меня есть 3 контроллера вида, A-> B -> C, но между B и C у меня есть контроллер навигации. Мой C контроллер получает некоторую информацию от пользователя, и я сохраняю ее в Realm (локальная база данных). При выходе из этого контроллера я хочу go к контроллеру B и показать некоторые из этих сохраненных данных, однако, когда я пытаюсь использовать popToViewController, он говорит мне, что либо контроллер не существует, либо он просто падает. Я также попытался

dismiss(animated: true, completion: nil)

, но он выходит только из контроллера и не перезагружает данные на моем B-контроллере. Есть ли способ использовать PopToViewController в Swift 4?

Вот как я пытался его использовать:

     let prevVC = self.storyboard?.instantiateViewController(withIdentifier: "FormListVC") as? FormListVC
     navigationController?.popToViewController(prevVC, animated: true)

Я также пытался:

for vc in self.navigationController!.viewControllers {
    if vc is FormListVC {
        navigationController?.popToViewController(vc, animated: true)
    }
}

Но ничего не происходит.

1 Ответ

1 голос
/ 07 января 2020

Вы говорите, когда вы dismiss(animated: true, completion: nil), тогда ваш контроллер вида выходит.

Это означает, что ваш контроллер не находится в навигационном контроллере, но представлен модально. Так что popToViewController не будет работать.

Если вы хотите передать данные обратно вашему контроллеру после отклонения, используйте Delegates.

...