[英]Swift - passing game score to second view controller
我正在嘗試將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
缺少一些東西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)
}
希望這會有所幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.