gpt4 book ai didi

ios - ARKit 插入 VC 捕获事件 Swift 4

转载 作者:行者123 更新时间:2023-11-28 07:39:54 25 4
gpt4 key购买 nike

我在 sceneView 中放了一个 VC: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

}
}

当我检测到 anchor 并将 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
}

在我的 SecondVC 类(class)中:

@IBOutlet weak var label: UILabel!

@IBAction func pressButton(_ sender: UIButton) {

label.text = "I changed"
}

但是在主视图中永远不会调用该操作 :(

Arkit image

最佳答案

终于找到解决办法了

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

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

关于ios - ARKit 插入 VC 捕获事件 Swift 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52563316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com