我正在尝试将GameScene
的高分传递给GameOverViewController
。我已经成功添加了segue GameOver
,并且该应用程序按预期工作。GameOVerViewController
的要点是显示乐谱,广告和重播选项。
我看了一些教程,但是似乎遇到了麻烦。这是我当前的设置。GameScene.swift
包含游戏代码ViewController
包含跟踪广告和横幅广告GameOverViewController
可以显示广告,重播,并希望很快就会有乐谱。
链接两个视图的segue的GameOver
名称scoreLabelNode.text = "Score \(score)"
显示GameScene
的得分
我在GameOVerViewController
上添加了一个标签,希望以此来显示得分...
@IBOutlet weak var Label: UILabel!
var recevedString: String = ""
override func viewDidLoad() {
super.viewDidLoad()
Label.text = recevedString
在我的
GameScene
上,我尝试了以下功能func segue(){
self.viewController.performSegueWithIdentifier("GameOver", sender: viewController)
var secondViewController: GameOverViewController = segue.destinationViewController as GameOverViewController
secondViewController.recevedString = scoreLabelNode.text
}
不,这正确指出了
() -> () does not have a member named destinationViewController'
的以下错误有人会知道正确的代码来帮助发送高分数据,或者在我出问题的时候将我指向正确的方向。
谢谢。
更新的代码
进行更改后,有人会知道为什么乐谱仍然无法显示到
GameOVerViewController
吗?我猜测didBeginContact to call the
prepareForSegue`中缺少某些内容。谢谢。func didBeginContact(contact: SKPhysicsContact) {
if( moving.speed > 0 ) {
if((contact.bodyA.categoryBitMask & scoreCategory) == scoreCategory || (contact.bodyB.categoryBitMask & scoreCategory) == scoreCategory){
score++
scoreLabelNode.text = "Score \(score)"
}else {
moving.speed = 0;
//lots of game over code removed from here
return segue()
}
}
}
func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if(segue.identifier == "GameOver")
{
let destVC = (segue.destinationViewController as? GameOverViewController)!
destVC.recevedString = scoreLabelNode.text
}
}
func segue(){
self.viewController.performSegueWithIdentifier("GameOver", sender: self)
}
最佳答案
我猜你需要使用prepareForSegue
。
尝试这个 :
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if(segue.identifier == "GameOver")
{
let destVC = (segue.destinationViewController as? GameOverViewController)!
destVC.recevedString = scoreLabelNode.text
}
}
现在你的
segue()
看起来像func segue(){
self.viewController.performSegueWithIdentifier("GameOver", sender: self)
}
希望这会有所帮助!
关于ios - Swift-将游戏得分传递给第二 View Controller ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31893854/