从SKScene中删除iAd

时间:2015-10-17 01:59:10

标签: ios swift sprite-kit

我目前正在尝试将IAP实施到我的SKScene中Swift Sprite Kit In App Purchase 但我有一个问题,想知道如何从我的skscene中设置self.canDisplayBannerAds为false,我使用的代码什么也没做。任何帮助将不胜感激。

 func removeAds() {

        let viewController: GameViewController = GameViewController()

        viewController.canDisplayBannerAds = false
    }

1 个答案:

答案 0 :(得分:2)

您的代码无法正常工作的原因是您正在创建一个新的GameViewController并在其上设置canDisplayBannerAds。

您需要保留对原始GameViewController的引用,您可以通过场景SKView从场景中访问它。

如果您不想继承SKView,可以使用以下内容获取当前的viewController。

if let viewController = view.nextResponder as? GameViewController /* or whatever your VC is */ {
    viewController.canDisplayBannerAds = false
}

如果您的SKView是子视图更改view.nextResponderview.superview.nextResponder

或者,您可以使用通知中心向GameViewController

发送消息

在你的GameViewController中。

override func viewDidAppear(animated: Bool) {
     super.viewDidAppear(animated)
     NSNotificationCenter.defaultCenter().addObserver(self, selector: "turnOffAds", name: "TurnOffAdsNotification", object: nil)
}

func turnOffAds() {
     self.canDisplayBannerAds = false
}

SKScene的某个地方:

NSNotificationCenter.defaultCenter().postNotificationName("TurnOffAdsNotification", object: nil)