Как я могу go вернуться к ViewController2 из ViewController5 - Swift - PullRequest
0 голосов
/ 29 марта 2020

В Swift у меня есть ViewController1, ViewController2, ViewController3, ViewController4 и ViewController5, теперь с ViewController1,

I go до ViewController5 с помощью performSegue(withIdentifier: "segueIdentifier", sender: nil) например:

ViewController1 -> ViewController2 -> ViewController3 -> ViewController4 -> ViewController5

Теперь я нахожусь на ViewController5 и хочу уволить ViewController2, я использую dismiss(animated: true), и он вернет вас только на 1 шаг назад от вашего текущий ViewController, поэтому я вхожу в ViewController4.

Вопрос в том, как я могу go вернуться к ViewController2 из ViewController5?

Итак, когда я вернулся в ViewController2 и запустил dismiss(animated: true) Я возвращаюсь к ViewController1

1 Ответ

0 голосов
/ 30 марта 2020
extension UINavigationController {

func popToViewController<Controller : UIViewController>(_ type: Controller.Type){
    guard let vc = viewControllers.compactMap({ $0 as? Controller }).first else { return }
    popToViewController(vc, animated: true)
  } 

}

navigationController?.popToViewController(ViewController.self)
...