我目前正在尝试将IAP实施到我的SKScene中Swift Sprite Kit In App Purchase 但我有一个问题,想知道如何从我的skscene中设置self.canDisplayBannerAds为false,我使用的代码什么也没做。任何帮助将不胜感激。
func removeAds() {
let viewController: GameViewController = GameViewController()
viewController.canDisplayBannerAds = false
}
答案 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.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)