swift:如何在游戏场景中调用ViewController中制作的广告

时间:2016-07-11 14:07:57

标签: ios swift admob

我在GameViewController中声明了一个插页式广告,并希望每次游戏结束时都会调用它。我按照一个教程,我会通过按钮调用广告,但我需要从GameScene打电话,但我不知道如何跨班级打电话。我可以在所有类之间使用全局变量吗? 基本上我想在GameScene中调用func adButton(),或者可能有更好的解决方法。

此外,有没有办法实施奖励广告,或者有没有人有这样的好教程?

非常感谢。

func createAndLoadInterstitial() -> GADInterstitial {

    let interstitial = GADInterstitial(adUnitID: " unit id ")
    let request1 = GADRequest()
    interstitial.delegate = self
    request1.testDevices = [ kGADSimulatorID, "2077ef9a63d2b398840261c8221a0c9b" ]
    interstitial.loadRequest(request1)
    return interstitial




}


func adButton() {

    if (self.interstitial.isReady)
    {
        self.interstitial.presentFromRootViewController(self)
        self.interstitial = self.createAndLoadInterstitial()
    }
}

1 个答案:

答案 0 :(得分:2)

使用notifictionCenter调用功能

在viewDidLoad()中添加第一个函数,在adButton()中添加第二个函数

在Swift 3中

//In the gameviewcontroller
    NotificationCenter.default.addObserver(self, selector: #selector(YourFunctionNameHere), name: "NSNotificationCreate" as NSNotification.Name, object: nil)
//In the gameScene use this to call the ad
    NotificationCenter.default.post(name: "NSNotificationCreate" as NSNotification.Name, object: nil)

在Swift 2中

//In the gameviewcontroller
   NSNotificationCenter.defaultCenter().addObserver(self, selector: "YourFunctionNameHere", name: "NSNotificationCreate", object: nil)

//In the gameScene use this to call the ad
   NSNotificationCenter.defaultCenter().postNotificationName("NSNotificationCreate", object: nil)