Есть 2 способа добиться этого.Простота реализации в View Controller C, вы можете, в определенной ситуации, вызывать следующую функцию:
navigationController?.popToRootViewController(animated: true)
Это вызовет всю иерархию навигационных представлений и вернет вас к корню, то есть к первому представлению.controller.
Второй подход - определить метод размотки в контроллере представления, к которому вы хотите вернуться.В контроллере представления, когда вы начнете вводить раскрутку, в Xcode 10 вы получите автозаполнение, чтобы добавить этот метод быстрого перемотки.
@IBAction func unwindToA(_ unwindSegue: UIStoryboardSegue) {
let sourceViewController = unwindSegue.source
// Use data from the view controller which initiated the unwind segue
}
В этом конкретном вопросе, скажем, вы добавили этот метод в View Controller A, так как выхочу вернуться к этому.Я предполагаю, что у вас есть кнопка на View Controller C, чтобы вернуться к A. Controll + Перетащите с кнопки на символ Exit контроллера представления A. Автоматически появится метод unwindToA.Подключитесь к нему, и все готово.Когда пользователь нажимает эту кнопку, он возвращает 2 навигационных контроллера к A.
Примечание. С помощью этого метода вы можете вернуться к любому навигационному контроллеру в стеке навигации, и он не ограничен одним только корневым контроллером представления.Ниже приведена дополнительная картинка, показывающая выход на контроллере вида.