如何在不冻结ARSession的情况下将ARSCNView放入Tabview控制器?

时间:2017-07-12 11:15:48

标签: ios ios11 xcode9-beta arkit

我正在尝试在我的应用程序(Tabbed应用程序)中实现iOS 11 beta的ARKit。但正如ARKit Session Paused and Not Resuming线程中所述,每当我将选项卡更改为另一个视图控制器并返回时,ARSession就会冻结而不会恢复。

是否可以在选项卡式应用程序中实现ARSCNView,这样如果你回来我可以恢复ARSession?如果是这样怎么办?

1 个答案:

答案 0 :(得分:6)

是的,你可以:

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    let configuration = ARWorldTrackingSessionConfiguration()
    sceneView.session.run(configuration, options: [.resetTracking, .removeExistingAnchors])
}
override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)
    sceneView.session.pause()
}

当视图消失时停止会话,并在显示视图时重新运行清除锚点和重置跟踪的会话。另外,为了避免出现和消失ASCNView更好地使用弹出视图控制器。

为了获得更好的用户体验,请查看Apple如何在demo project

中执行这些弹出窗口