前提
UINavigationController 配下の MainViewController から、
以下のようなコードでモーダル表示した HogeViewController があります。
Swift
1let modalVC = UIStoryboard(name: "hoge", bundle: nil).instantiateViewController(withIdentifier: "hogeID") as! HogeViewController 2self.present(modalVC, animated: true, completion: nil)
実現したいこと
この HogeViewController からボタンをタップしたら次の画面(FugaViewController)に遷移します。
次の画面(FugaViewController)は、モーダルの親の MainViewController の UINavigationController に push したいです。
試したこと
最初は HogeViewController で以下のようにしてみました。
Swift
1let nextView = storyboard.instantiateViewController(withIdentifier: "fugaViewController") as! FugaViewController 2nextView.modalPresentationStyle = .fullScreen 3present(nextView, animated: true)
しかしながらこのコードでは、FugaViewController にナビゲーションバーが表示されませんでした。
次に以下のようにしてみました。
Swift
1let nextView = storyboard.instantiateViewController(withIdentifier: "fugaViewController") as! FugaViewController 2nextView.modalPresentationStyle = .fullScreen 3self.navigationController?.pushViewController(nextView, animated: true)
これだと self.navigationController
が nil のため、pushViewController が呼べませんでした。
元々の MainViewController からモーダルで表示しているため、UINavigationController の配下ではないからだと思いますが、
このようなモーダル表示の UIViewController から、元の UINavigationController の流れに戻って pushViewController するには、どのようにすればいいのでしょうか?
補足情報(FW/ツールのバージョンなど)
Xcode 12.5.1
Swift 4
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/21 02:52