我目前正在尝试像Swift Sprite Kit In App Purchase这样在我的SKScene中实现IAP
但是我在从我的场景中弄清楚如何将self.canDisplayBannerAds设置为false时遇到问题,我使用的代码什么也没做。任何帮助,将不胜感激。

 func removeAds() {

        let viewController: GameViewController = GameViewController()

        viewController.canDisplayBannerAds = false
    }

最佳答案

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

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

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

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

如果您的SKView是子视图,则将view.nextResponder更改为view.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)

关于ios - 从SKScene移除iAds,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33181941/

10-12 14:50