ARKit 插入 VC 捕获事件 Swift 4

ARKit insert VC capture events Swift 4

我在sceneView里面放了一个VC:ARSCNView

但是第二个VC的事件不起作用我需要在用户按下按钮时更改文本这是我的代码:

class ViewController: UIViewController, ARSCNViewDelegate,ARSessionDelegate {

   let vc = SecondVC()
    var viewVC = UIView()

    override func viewDidLoad() {
        super.viewDidLoad()

// I Get te reference to my view

        let storyboard = UIStoryboard(name: "Main", bundle: nil)
        let viewController = storyboard.instantiateViewController(withIdentifier :"SecondVC") as! SecondVC
        viewVC = viewController.view

        // Set the view's delegate
        sceneView.delegate = self
        sceneView.session.delegate=self

    }
}

当我检测到锚并将 VC 放在场景中时触发事件

    func renderer(_ renderer: SCNSceneRenderer, nodeFor anchor: ARAnchor) -> SCNNode? {


      if self.detectedDataAnchor?.identifier == anchor.identifier {

              let node = SCNNode()
               let plane = SCNPlane(width: 0.2, height: 0.2)
                plane.firstMaterial?.diffuse.contents = viewVC
                let planeNode = SCNNode(geometry: plane)
                planeNode.opacity = 0
                node.addChildNode(planeNode)
              return node
       }
    return nil
}

我的第二个VC class:

@IBOutlet weak var label: UILabel!

    @IBAction func pressButton(_ sender: UIButton) {

        label.text = "I changed"
    }

但在主视图中从未调用该操作:(

终于找到解决方法

1 我创建了一个 xib 文件 2 获取文件访问权限 3 在场景中显示如下:

let node = SCNNode()
let plane = SCNPlane(width: 0.2, height: 0.2)
            plane.firstMaterial?.diffuse.contents = viewToShow
            let planeNode = SCNNode(geometry: plane)
            node.addChildNode(planeNode)

return node

并且有效!点击按钮时我可以更改文本