Я помещаю VC в sceneView: ARSCNView
, но события SecondVC не работают. Мне нужно изменить текст, когда пользователь нажимает кнопку, вот мой код:
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
}
}
И я запускаю событие, когда я обнаруживаю якорь и помещаю ВК в сцену
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
}
В моем классе SecondVC:
@IBOutlet weak var label: UILabel!
@IBAction func pressButton(_ sender: UIButton) {
label.text = "I changed"
}
Но действие никогда не вызывается в главномпросмотр: (