在Swift中显示AdMob广告时,场景会发生变化

时间:2017-08-17 15:34:05

标签: swift admob

我最近在我的游戏中实施了AdMob,而我在GameScene中显示广告时遇到了问题。当应用程序加载时,我从GameViewController加载MainMenu场景,如下所示:

override func viewWillLayoutSubviews() {
    super.viewWillLayoutSubviews()

    let skView = self.view as! SKView
    skView.ignoresSiblingOrder = true
    skView.showsFPS = true
    skView.showsNodeCount = true

    let mainMenu = MainMenu()
    mainMenu.scaleMode = .aspectFill
    mainMenu.size = view.bounds.size
    skView.presentScene(mainMenu)
}

玩家按下开始后,我将场景更改为GameScene,玩家将玩游戏直至死亡。我向GameScene添加了一个观察者,告诉GameViewController在广告死后显示广告。我在viewDidLoad中创建了这样的观察者:

var interstitial: GADInterstitial!

override func viewDidLoad() {
    super.viewDidLoad()
    interstitial = loadAd()
    NotificationCenter.default.addObserver(self, selector: #selector(self.playerDied), name: NSNotification.Name("ShowAd"), object: nil)
    NotificationCenter.default.post(name: NSNotification.Name("ShowingAd"), object: nil)

}

所以,当玩家去世时,我会发布" ShowAd"到通知中心,广告会通过.isReady检查并显示。然而,在广告被解雇后,它重新加载了刚刚恢复gameScene的mainMenu场景。有没有人知道显示广告的方法,但广告显示后当前场景仍然是GameScene?感谢。

1 个答案:

答案 0 :(得分:0)

我猜测广告被解散后正在调用viewController的func viewWillLayoutSubviews()。尝试将func viewWillLayoutSubviews()中的所有代码放入override func viewWillAppear(_ animated: Bool)