5

我正在尝试在我的应用程序(选项卡式应用程序)中实现 iOS 11 beta 的 ARKit。但正如ARKit 会话暂停和不恢复线程中所说,每当我将选项卡更改为另一个视图控制器并返回时,ARSession 就会被冻结而不恢复。

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

4

1 回答 1

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 如何在他们的演示项目中制作这些弹出屏幕

于 2017-07-12T15:13:14.000 回答