爲什麼你的代碼是不工作的原因是因爲你正在創建一個新的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)
我明白了。我怎麼能這樣做呢?我想使用self.view?.canDisplayBannerAds = false,但這不起作用,因爲顯然'SKView類型的值沒有成員canDisplayBannerAds' –
張貼了一些代碼,給它一個,沒有測試它,但應該工作。 –
不幸運的是 –