[Xcode] Push segues can only be used when the source controller is managed by an instance of UINavigationController.


Push segues can only be used when the source controller is managed by an instance of UINavigationController.
上記のエラーが発生した場合、ほとんどの問題はUINAvigationControllerが接続されていないことによるエラーです.
しかし、上記の問題以外の問題で発生したエラーを解決する方法を書きます.

[質問]


今の私の場合、VCに登録してMainVCに接続し、MainVCのボタンをクリックしてPushに切り替えます.(この場合、MainVCはUInavigationViewControlに接続されます.)
しかし、Pushコードを作成した場合は何の反応もなく、Segueに接続すると上記のエラーが表示され、Appが停止します.

[解決]


失敗したバージョン


ログインVCからMainVCの下のコードに切り替えます.
let alStoryboard = UIStoryboard(name: "Main", bundle: nil) //스토리보드 결정
let alarmVC = alStoryboard.instantiateViewController(identifier: "MainViewController")
alarmVC.modalTransitionStyle = .coverVertical
alarmVC.modalPresentationStyle = .fullScreen
self.present(alarmVC, animated: true, completion: nil)
このようにInstantiateView ControlでMainVCを再生し、MainVCのみを再生し、UINAvigationView Controlを含まないとエラーが発生します.

正常なバージョン

let alStoryboard = UIStoryboard(name: "Main", bundle: nil) //스토리보드 결정
        let alarmVC = alStoryboard.instantiateInitialViewController()
        alarmVC?.modalTransitionStyle = .coverVertical
        alarmVC?.modalPresentationStyle = .fullScreen
        self.present(alarmVC!, animated: true, completion: nil)
これにより、スクリーンを[初期ビューアをインスタンス化()](Instance Initial Viewer())に切り替えると、[ホームビューを持つ](Make Views with)の[初期ナビゲーション](Initial Navigation)に切り替わります.