お世話になります。
###やりたいこと
下記URLを参考にsegueを使わずに画面遷移を行おうとしています。
http://easyramble.com/swift-navigationcontroller-pushviewcontroller.html
###エラー内容
エラーは下記の通りです。
fatal error: unexpectedly found nil while unwrapping an Optional value
###該当コード
該当のコードは下記です。
swift
1public override func viewDidAppear(animated: Bool) { 2 let next = self.storyboard?.instantiateViewControllerWithIdentifier("modal") as! BarChartViewController 3 self.navigationController?.pushViewController(next, animated: true) 4}
###Storyboard
storyboardは下記の通りで、ユーザーの入力なしに開発者側の任意のタイミングで右のviewへ移動させたいです。
###補足情報
いまはとりあえずviewDidAppear()内に書いていて、
アプリを立ち上げてすぐに次の画面へ遷移させようとしています。
よろしくお願いします。
なお、print(next)の出力結果は下記です。
<FoodAPISample.BarChartViewController: 0x1476531c0>
BarChartViewControllerは遷移先なのですが、Custom ClassのModuleにプロジェクト名である'FoodAPISample'を入力してみたり、IdentityのRestoration IDにStoryboard ID同様'modal'を入力してみたりしましたが、エラーは変わりません。
Storyboardを見る限り、`self.navigationController`がありません。`print(self.navigationController)`と書いて結果を確かめてみてください。ナビゲーションコントローラを使って画面を遷移するには、ナビゲーションコントローラを使った画面の構成になっていなければなりません。具体的には、Scan View Controllerをナビゲーションコントローラで包みます。
k_katsumiさん、早速のコメントありがとうございます。TakeOneさんのご指摘を受けて修正していますが、今も誤っていますか?
なお`print(self.navigationController)`の結果は、`Optional(<UINavigationController: 0x15d03c800>)`となります。
いえ、その部分は合ってると思います。コメントを書いてる間にTakeOneさんの回答が記入されたので内容が重複しました。
とりあえずどこで`unexpectedly found nil`が起こってるのかを突き止める(何がnilか)必要があります。`print(next)`などとして、何がnilが調べられませんか?
回答1件
あなたの回答
tips
プレビュー