У меня есть приложение с 7 экранами (VC), которые встроены в контроллер навигации.
И у меня есть один отдельный VC, который не встроен.Этот VC действует как пользовательское всплывающее окно class PopupView: UIViewController {}
и вызывается нажатием кнопки на каждом экране, который у меня есть в моем приложении, с использованием пользовательского перехода (настройка в качестве пользовательского перехода в раскадровке):
open class MIBlurPopupSegue: UIStoryboardSegue {
open override func perform() {
MIBlurPopup.show(destination, on: source)
} }
В этом всплывающем окне естькнопка, которая должна открывать другой VC (VC всегда один и тот же), который встроен в стек навигации.
То, чего я пытаюсь добиться, - это фактически открыть тот VC, который находится внутри стека навигации, нажав кнопку в Popup VCи затем вернитесь к экрану, где вызывался Popup.
Итак, путешествие пользователя будет выглядеть так: - Открыт VC1 (2,3,5,6,7) -> Вызванный всплывающий ВК -> Нажатая кнопка ->открыл VC4 -> нажал навигационную кнопку возврата -> вернулся к VC1.
И то, что у меня сейчас есть:
Подключен в раскадровке все 6 экранов к VC4, с переходамиидентификаторы
Tried performSegue(withIdentifier: "toVC4")
, present(vc, animated: true, completion: nil)
let storyboard = UIStoryboard(name: "MyStoryboardName", bundle: nil)
let controller = storyboard.instantiateViewController(withIdentifier: "VC4")
self.present(controller, animated: true, completion: nil)
Использование протоколоввызвать func в VC1, но не удалось.
Я определенно пропускаю что-тоЯ был бы очень благодарен, если бы кто-нибудь смог предоставить пример кода для решения этой проблемы.