iOS将ARSCNView推送到UINavigationController并从中返回

时间:2018-06-15 09:03:25

标签: ios swift uinavigationcontroller arkit

我有一个带有UICollectionView的iOS应用程序作为带有UINavigationController的主视图控制器。然后我根据用户请求推送ARSCNView。它按预期工作。当我点击导航控制器中的“返回”按钮时,应用程序返回到集合视图,应用程序显示集合视图,但挂起并且不再接受用户输入。

我如何正确处理这种情况?现在我正在这样做:

let view = ARViewController()
navigationController?.pushViewController(view, animated: true)

但如上所述,这会导致应用在返回时挂起。

1 个答案:

答案 0 :(得分:0)

我不确定您的代码中是否已经有此功能,或者是否有帮助,但是您是否像这样在viewWillDisappearMethod中暂停了ARKitSceneView上的ARKitSession?

override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)

    // Pause the view's AR session.
    sceneView.session.pause()
}

如果要执行此操作,则还应该将ARKitScene设置代码也移到View Controller的viewWillAppear方法中。不幸的是,我无法使用Mac进行测试,但我想建议您这样做。