仅在特定场景中显示adMob横幅;迅速

时间:2017-07-18 11:45:46

标签: ios swift xcode admob banner

在我的游戏中,我有4个不同的场景。 现在我想刊登一些AdMob横幅广告,但只是在这4个场景中的2个。

我试过这样的话。

constructor(private route: ActivatedRoute) {}
ngOnInit() {
    this.route
      .data
      .subscribe(data=> {
        this.data= data || {};
      });
}

问题是,广告仍会显示在每个场景中。

有人知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:4)

广告在每个场景中展示,因为bannerview附加到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函数在superview(GameViewController)及其窗口中添加/删除