首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在多个ARSCNView上共享ViewControllers

在多个ARSCNView上共享ViewControllers
EN

Stack Overflow用户
提问于 2018-01-11 18:24:04
回答 1查看 486关注 0票数 1

我想要建立一个应用程序,用户可以在不同的AR视图之间滑动填充不同的内容,,但在相同的AR会话-所以他们不需要每次搜索飞机/功能。

我试着通过单例将ARSCNView从一个ViewController传递到另一个ViewController。但这给了我一个错误:

代码语言:javascript
复制
Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[ setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key sceneView.'

在这种情况下,正确的模式是什么?

MainViewController:

代码语言:javascript
复制
extension MainViewController: ARSCNViewDelegate, ARSessionDelegate 
{
    func initAR(){
        ArSceneView.delegate = self
        ArSceneView.scene = scene
        ArSceneView.debugOptions = [ARSCNDebugOptions.showFeaturePoints]
        MainViewController.manager.ArSession=ArSceneView
    }

    override func viewWillAppear(_ animated: Bool) {
        let configuration = ARWorldTrackingConfiguration()
        ArSceneView.session.run(configuration)
    }

}

AnotherViewController:

代码语言:javascript
复制
class AnotherViewController:  {
    override func viewDidLoad() {
        MainViewController.manager.ArSession.delegate = self
    }
}

编辑:我已经找到了一个解决办法--如果您想在不同的ViewControllers上使用相同的AR会话,请随意使用UIPageViewController,并对其使用SCNView,然后在连接到UIPageViewController的不同视图中保持不变。

EN

回答 1

Stack Overflow用户

发布于 2018-01-12 08:19:17

这个话题本身就很有趣。因此,我尝试在prepareForSeague中简单地将场景视图、会话从一个视图传递到下一个视图控制器。它切换时没有任何错误,但是sceneview是空的。现在我不确定它是重置了还是完全重新开始了。我真的很想知道你的是否有效。

对于您的问题--如果您的AnotherViewController中没有任何其他特定功能,则可以在内容之间滑动。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48213611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档