所以我相信你可以成功地继续你目前的路线。你有一个视图控制器和多个arscnviews。另一种方法是让一个父视图控制器和两个子视图控制器具有各自独立的 scnview。要完成这项工作,您必须从父视图控制器的视图中添加和删除 scnviews。但是,这最后一步似乎是您尝试使用您所在的一个视图控制器路由进行的工作。如果您想保留一个视图控制器,我建议为 ARSCNViews 提供一个容器,并从 ViewController 的视图中添加和删除这些视图,如下所示:
添加 exampleViewA 和删除 exampleViewB 时
self.view.addSubview(exampleViewA)
exampleViewB.removeFromSuperview()
反之亦然,用于添加 exampleViewB 和 revmoing exampleViewA
self.view.addSubview(exampleViewB)
exampleViewA.removeFromSuperview()
但是为了做到这一点,在视图之间来回移动的行为,你应该有一个容器来记住/存储你的 ARSCNViews,如下所示:
var arSCNViews: [String:ARSCNView] = {
return [
"exampleViewA": exampleViewA,
"exampleViewB": exampleViewB
]()