2017-07-18 17 views
0

私のゲームで私は4つの異なるシーンを得ました。 今、AdMobのバナーをいくつか紹介したいと思いますが、この4つのシーンのうち2つで特定のシーンでのみadMobバナーを表示します。スウィフト

このように試しました。

class GameViewController: UIViewController, GADBannerViewDelegate { 


var bannerView: GADBannerView! 



override func viewDidLoad() { 

    super.viewDidLoad() 


    if let view = self.view as! SKView? { 
     // Load the SKScene from 'GameScene.sks' 

     if var scene = StartScene(fileNamed: "StartScene") { 





      // Set the scale mode to scale to fit the window 
      scene.scaleMode = .aspectFill 

      // Present the scene 
      view.presentScene(scene) 



     } 



     if var scene = MainMenuScene(fileNamed: "MainMenuScene") { 



     bannerView = GADBannerView(adSize: kGADAdSizeBanner) 

     self.view.addSubview(bannerView) 
     let request = GADRequest() 
     request.testDevices = [kGADSimulatorID] 
     bannerView.rootViewController = self 
     bannerView.delegate = self 
     bannerView.adUnitID = "ca-app-pub-2567181742111069/9977523039" 
     bannerView.load(request) 
     bannerView.center = CGPoint(x: 329, y: 350) 

     } 


     view.ignoresSiblingOrder = true 

     view.showsPhysics = false 


     view.showsFPS = false 
     view.showsNodeCount = false 



     } 



} 

問題は、すべてのシーンに広告が表示されていることです。

誰もこの問題を解決する方法を知っていますか?

答えて

3

バナービューが子シーンを保持するGameViewController(スーパービューとして機能する)にアタッチされているため、すべてのシーンで広告が表示されます。

あなたが欲しい場面でそれを示し、その後、それはで表示したくないの作成とロードバナー広告をviewDidLoad()にし、シーンでそれを隠す:

class GameViewController: UIViewController, GADBannerViewDelegate { 


var bannerView: GADBannerView! 



override func viewDidLoad() { 

    super.viewDidLoad() 

     bannerView = GADBannerView(adSize: kGADAdSizeBanner) 

     self.view.addSubview(bannerView) 
     let request = GADRequest() 
     request.testDevices = [kGADSimulatorID] 
     bannerView.rootViewController = self 
     bannerView.delegate = self 
     bannerView.adUnitID = "ca-app-pub-2567181742111069/9977523039" 
     bannerView.load(request) 
     bannerView.center = CGPoint(x: 329, y: 350) 


    if let view = self.view as! SKView? { 
     // Load the SKScene from 'GameScene.sks' 

     if var scene = StartScene(fileNamed: "StartScene") { 

      // Set the scale mode to scale to fit the window 
      scene.scaleMode = .aspectFill 

      // Present the scene 
      self.bannerView.isHidden = true 
      view.presentScene(scene) 
     } 



     if var scene = MainMenuScene(fileNamed: "MainMenuScene") { 

       self.bannerView.isHidden = false 

     } 


     view.ignoresSiblingOrder = true 

     view.showsPhysics = false 


     view.showsFPS = false 
     view.showsNodeCount = false 



     } 

} 

あなたはまたaddSubViewremoveFromSuperviewを使用することができますスーパービュー(GameViewController)とそのウィンドウを追加/削除する機能

関連する問題