我正在研究一个SpriteKit ARKit项目,我试图将数据从SKScene传递到新的实例化ViewController。
我的目标是,一旦用户点击带有标识符的节点,新的viewController将实例化并使用performSeque导航到VC。
目前我能够执行会话并导航到新的实例化VC。但是,即使我设置了vc.data = result(已经过值验证的变量)并将其打印出来进行检查。但是,当新视图启动时,没有设置vc.data,也没有数据从SKScene传递到ViewController。
我附上了我的代码段以供参考。
我是SKScene的新手,并且很快,需要你的指导。非常感激。
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
guard let touch = touches.first else {
return
}
let location = touch.location(in: self)
let hit = nodes(at: location)
if let node = hit.first { if node.name == "targetLabel" {
guard let vc = UIStoryboard(name:"Main", bundle:nil).instantiateViewController(withIdentifier: "TargetViewController") as? TargetViewController else {
print("Could not instantiate view controller with identifier of type TargetViewController")
return
}
vc.data = result
//Even print to check
print("Got result in vc.data?: \(vc.data)")
self.viewController?.performSegue(withIdentifier: "goToTargetViewController", sender: vc)
}
...