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