2017-06-27 11 views
0

ARKitを使用するための非常にシンプルなSwiftコード。主にXcodeにARKitアプリケーションを作成させて実行させます。私はうまく動作し、プレーンを示しています。ARKit Swift - 致命的なエラー:アンラッピング中に予期せぬ結果が発生しました。オプション値

しかし、ナビゲーションコントローラをストーリーボードに追加して小さなメニューを作成すると、プレーンデモのエントリで同じARKitサンプルを呼び出すと、アプリケーションがクラッシュします。

switch menuItemIndex { 
    case 0: 
     let controller = AvionViewController() 
     self.navigationController?.pushViewController(controller, animated: true) 

    default: 
     print("something") 
    } 

クラッシュがある:

2017-06-27 08:08:26.317187-0500 ARDemo[1868:432582] [DYMTLInitPlatform] platform initialization successful fatal error: unexpectedly found nil while unwrapping an Optional value 2017-06-27 08:08:29.546679-0500 ARDemo[1868:432449] fatal error: unexpectedly found nil while unwrapping an Optional value (lldb)

別の1からのViewControllerを呼び出すときに、アプリがクラッシュし、それは動作しますが、直接ARKitデモのViewControllerを実行しているが、ときだから、意味します。

もう一方で、@IBOutletを使用せずに、ARSCNViewをプログラムで作成して表示に追加すると、アプリは正常に動作します。

Objective-Cで同じことを行ってもクラッシュは発生しません。不思議ですか?

+0

このエラーはこのコードとは関係ありません。おそらくAcionViewControllerのinitメソッドと関係しているようです。そこには何がありますか? – Fogmeister

答えて

1

ナビゲーションにストーリーボードを使用している場合は、View Controllerをインスタンス化する方法ではありません。

let controller = self.storyboard?.instantiateViewController(withIdentifier: "yourViewControllersStoryboardID")

+0

私には恥ずかしい!ありがとう!できます! –

+0

うれしかったです。私の答えが役に立ったら、それを受け入れてください。 –

+0

あなたは[de plane、de plane](https://en.m.wikipedia.org/wiki/Ze_plane!_Ze_plane!)を見つけることができてうれしいです...しかし、ARKitでナビゲーションコントローラを使用することは良い考えではありません。 ARSessionをホストするビューコントローラが画面からプッシュされた場合、セッションはトラッキングを停止することができます。これは、戻ったときにプレーンと他のアンカーが同じ場所にないことを意味します。 – rickster

関連する問題

 関連する問題