0

一个非常简单的使用 ARKit 的 Swift 代码。主要是让Xcode创建一个ARKit App并运行。我工作得很好,展示了 de Plane。

但是,当向 Storyboard 添加导航控制器并创建一个小菜单时,使用 Plane Demo 的条目并现在调用相同的 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] 平台初始化成功致命错误:在展开可选值时意外发现 nil 2017-06-27 08:08:29.546679-0500 ARDemo[1868 :432449] 致命错误:在展开可选值 (lldb) 时意外发现 nil

这意味着,当直接运行 ARKit 演示 ViewController 时,它可以工作,但是当从另一个视图控制器调用 ViewController 时,应用程序会崩溃。

另一方面,当不使用@IBOutlet 时,以编程方式创建 ARSCNView 并添加到视图中,应用程序运行良好。

在 Objective-C 中做同样的事情不会产生任何崩溃。奇怪的?

任何的想法?

4

1 回答 1

1

如果您使用故事板进行导航,那么您不应该实例化视图控制器。

你必须打电话let controller = self.storyboard?.instantiateViewController(withIdentifier: "yourViewControllersStoryboardID")

于 2017-06-27T13:20:11.203 回答