Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift如何从视图控制器运行函数并更改场景中的变量?_Ios_Swift_Admob - Fatal编程技术网

Ios Swift如何从视图控制器运行函数并更改场景中的变量?

Ios Swift如何从视图控制器运行函数并更改场景中的变量?,ios,swift,admob,Ios,Swift,Admob,我已经在我的应用程序中实现了Admob奖励视频广告 广告的代码在视图控制器中,并在游戏场景中触发 但是,当我在视频结束后奖励用户时,我希望对场景中的变量执行操作 这是视图控制器中奖励用户的代码: func rewardBasedVideoAd(_ rewardBasedVideoAd: GADRewardBasedVideoAd, didRewardUserWith reward: GADAdReward) { if let scene3 = GameOverMenu(fileNam

我已经在我的应用程序中实现了Admob奖励视频广告

广告的代码在视图控制器中,并在游戏场景中触发

但是,当我在视频结束后奖励用户时,我希望对场景中的变量执行操作

这是视图控制器中奖励用户的代码:

func rewardBasedVideoAd(_ rewardBasedVideoAd: GADRewardBasedVideoAd, didRewardUserWith reward: GADAdReward) {


    if let scene3 = GameOverMenu(fileNamed: "Gameover") {

    let oldCoin = UserDefaults.standard.integer(forKey: "COINSCORE")
    let newCoin = oldCoin + 20
    UserDefaults.standard.set(newCoin, forKey: "COINSCORE")
    UserDefaults.standard.synchronize()
   scene3.coinLabel.removeFromParent()
   scene3.createCoinScore()


    }
}
用户默认值会更改,但是coinLabel不会删除,CreateConScore触发器也不会删除

 var scene3: GameOverMenu!
这帮我修好了

 func rewardBasedVideoAd(_ rewardBasedVideoAd: GADRewardBasedVideoAd, didRewardUserWith reward: GADAdReward) {

    if let view = self.view as! SKView? {

    if let scene3 = GameOverMenu(fileNamed: "Gameover") {

        scene3.viewController = self
        scene3.scaleMode = .aspectFill
        view.presentScene(scene3)

        let oldCoin = UserDefaults.standard.integer(forKey: "COINSCORE")
        let newCoin = oldCoin + 20
        UserDefaults.standard.set(newCoin, forKey: "COINSCORE")
        UserDefaults.standard.synchronize()
        scene3.coinLabel.removeFromParent()
        scene3.createCoinScore()



    }
    }


}