我找到了解决问题的方法:
在打开和关闭ARVC1
并快速打开后,ARVC2
我正在经历以前ARSession
的闪烁ARSession
。为了解决这个问题,我ARView
在 my 中创建MainVC
并将对它的引用传递给目标控制器,在那里我以编程方式设置arView
约束。为避免使用以下ARAnchors
选项传递 I 重置配置viewDidLoad
:
arView.session.run(configuration, options: [.resetTracking,.removeExistingAnchors,.stopTrackedRaycasts])
它也有助于UINavigationController
过渡(使其更平滑),因为ARSession
在呈现视图之前进行了配置,并且它消除了在运行 new 时出现的黑色ARConfiguration
闪光ARSession
。
它还消除了我在快速关闭和打开ViewController
包含ARView
有时会导致应用程序崩溃时遇到的控制台错误(如下):
[会话]会话(0x160879b40):确实失败并出现错误:错误域=com.apple.arkit.error Code=102“所需传感器失败。” UserInfo={NSLocalizedFailureReason=传感器未能提供所需的输入。,NSUnderlyingError=0x283f959b0 {错误域=AVFoundationErrorDomain Code=-11800“操作无法完成” UserInfo={NSLocalizedFailureReason=发生未知错误(-12780),NSLocalizedDescription =操作无法完成,NSUnderlyingError=0x283efc8a0 {Error Domain=NSOSStatusErrorDomain Code=-12780 "(null)"}}},NSLocalizedRecoverySuggestion=确保应用程序具有所需的隐私设置。,NSLocalizedDescription=所需的传感器失败。} 2020-01-09 16:20:38.600835+0000 应用[573: