Чтобы решить проблему, вы можете указать VC2
, используя Main
вместо VC1
.
Мы можем получить ссылку на Main
в VC1
, используя
self.presentingViewController
Когда представлено VC2
, отклонить VC1
в методе completionHandler
из present(_:animated:completion:)
class Main: UIViewController {
@IBAction func onTapButton(_ sender: UIButton) {
let vc1 = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "VC1")
self.present(vc1, animated: true, completion: nil)
}
}
class VC1: UIViewController {
@IBAction func onTapButton(_ sender: UIButton) {
let vc2 = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "VC2")
vc2.view.backgroundColor = .blue
self.dismiss(animated: false, completion: nil)
self.presentingViewController?.present(vc2, animated: true, completion: nil)
}
}
class VC2: UIViewController {
}
Этот подход дает ожидаемый результат.Позвольте мне, если потребуется что-то еще.