Уволить несколько контроллеров - PullRequest
0 голосов
/ 24 июня 2018

Как я могу вернуться к нескольким контроллерам назад?Изображение является примером

Example

Ответы [ 3 ]

0 голосов
/ 24 июня 2018

Если вы хотите вернуться к корневому контроллеру представления, вы можете использовать:

self.navigationController?.popToRootViewController(animated: true)

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

В вашем текущем контроллере представления:

guard let navigationController = self.navigationController else {return}
        for controller in navigationController.viewControllers {
            if let neededVC = controller as? SomeViewController {
                navigationController.popToViewController(neededVC, animated: true)
            }
        }
0 голосов
/ 24 июня 2018

если вы используете segue, тогда используйте ' Unwind segue '

для этой записи данного кода в вашем контроллере представления

@IBAction func unwindToThisViewController(segue: UIStoryboardSegue) {



}

В B_viewcontroller, Onнажмите кнопку вызова «Размотать переход».с помощью self.performSegue(withIdentifier: "YourSegueForA_VeiwController", sender: nil)

С помощью функции Unwind segue вы также можете отправлять данные

0 голосов
/ 24 июня 2018

Предполагая, что оба viewcontrollers находятся в одном и том же стеке навигации, вы можете использовать функцию navigationcontroller popToViewController(_:animated:).

navigationController?.popToViewController(theViewControllerInstanceYouWantToGetBackTo, animated: true)

https://developer.apple.com/documentation/uikit/uinavigationcontroller/1621871-poptoviewcontroller.

В вашем конкретном случае вы также можете использовать popToRootViewController(animated:) поскольку - согласно вашему скриншоту - вы хотите вернуться к начальному контроллеру контроллера навигации.

https://developer.apple.com/documentation/uikit/uinavigationcontroller/1621855-poptorootviewcontroller

navigationController?.popToRootViewController(animated: true)
...