Swift 在场景之间传递变量?

Posted

技术标签:

【中文标题】Swift 在场景之间传递变量?【英文标题】:Swift pass variables between scenes? 【发布时间】:2014-08-29 23:26:52 【问题描述】:

我有两个场景:我的 GameScene 玩家试图击败他的分数和 GameOverScene,当他输了时我呈现给玩家:

func changeScene() 
    let scene = GameOverScene()
    view.presentScene(scene)

基本上,我想将玩家分数传递给我的 GameOverScene,以便将其展示给玩家。分数存储在我的 GameScene 中的属性:“score: Int”中,但我不确定如何在场景之间传递它。我该怎么做?

【问题讨论】:

尽管有代码,但概念在这里:***.com/questions/11577484/… 【参考方案1】:

您可以使用以下函数设置新场景的属性:

override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) 
    if (segue.identifier == "Load View") 
        // pass data to next view
    

这是一个详细的例子:

http://jamesleist.com/ios-swift-passing-data-between-viewcontrollers/

【讨论】:

嗨 Fer,我创建了不同的场景,但我的应用程序中只有一个 viewController:“GameViewController”和三个场景“StartScreen”以及问题中提到的两个。从我正在阅读的内容来看,我知道这可以在 viewControllers 之间传递数据,这是否意味着我需要向游戏添加更多 viewControllers? @lisovaccaro 嘿伙计!您是否尝试过使用新场景提供的字典?尝试:myNewScene.userData setObject 就像任何 NSMutableDictionary 一样 我刚刚实现了它。我会用我的代码编辑你的答案。你的回答让我想知道我应该有多少个视图控制器,如果你知道,请检查我刚刚问的这个问题:***.com/questions/25577743/…

以上是关于Swift 在场景之间传递变量?的主要内容,如果未能解决你的问题,请参考以下文章

将变量从 UIViewController 传递到 SK 场景

使用 Swift 在 UIPageViewController 子视图之间传递数据

Swift:在不同的场景中更新了变量

SpriteKit:在场景之间传递数据

在场景之间传递的最佳方式是啥? [复制]

在没有 Segues 的故事板之间传递变量 - Swift