2015-06-18 94 views
0

我使用MoPub橫幅廣告移除廣告不同的場景,我下面的代碼添加到我的視圖控制器的viewDidLoad:斯威夫特:在Spritekit

 self.adView.delegate = self 
    self.adView.frame = CGRectMake(0, self.view.bounds.size.height - MOPUB_BANNER_SIZE.height, 
     MOPUB_BANNER_SIZE.width, MOPUB_BANNER_SIZE.height) 
    self.view.addSubview(self.adView) 
    self.adView.loadAd() 

但它使顯示廣告中的所有場景時,我只希望它在主菜單場景中可見。

如何刪除我不想要的場景中的廣告?

回答

2

這可能不是最好的辦法,但它可能是最簡單的。只要您希望顯示或隱藏您的橫幅,您就可以使用NSNotification向您的ViewController廣播消息。

例如,如果你在initviewDidLoadViewController增加一個「觀察者」:

NSNotificationCenter.defaultCenter().addObserver(
    self, 
    selector: "hideBannerAd", 
    name: "hideAd", 
    object: nil) 

爲了使ViewController聽一個叫"hideAd"消息,然後執行被稱爲hideBannerAd方法。

然後實現此方法:

func hideBannerAd(){ 
    self.adView.hidden = true 
} 

一定要去除deinit觀察者,這是不是可能是什麼在SpriteKit一個ViewController的持久性的問題,但它是很好的做法。

deinit{ 
    NSNotificationCenter.defaultCenter().removeObserver(self) 
} 

然後,當你想顯示或隱藏的觀點,例如在場景轉換或遊戲結束的方法,你可以通過觸發使用觀察者實現這個hideBannerAd方法:

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

而且橫幅應該隱藏。這可以通過將hidden屬性設置爲false來重複類似的showBannerAd方法,或者您可以使用一個簡單的方法使用adView.hidden = !adView.hidden切換隱藏屬性。

我希望這會有所幫助。