2014-03-03 86 views
2

我正在製作一個簡單的遊戲,並且我想在遊戲結束屏幕的頂部添加一個iAd。我可以將它添加到UIViewController,但是它會在播放時顯示,這是我不想要的。如何在某個SKScene上顯示iAd並將其隱藏在另一個上

有沒有辦法讓iAd只出現在某個SKScene?感謝你的幫助!

+0

讓場景向顯示/隱藏iAd橫幅的視圖控制器發送消息 – LearnCocos2D

+0

我該怎麼做? –

回答

3

最乾淨的解決方案是聲明和實施協議,讓UIViewController知道它應該隱藏廣告。

@protocol MySceneDelegate <NSObject> 
- (void)hideAd; 
- (void)showAd; 
@end 

@interface MyScene : SKScene 
@property (weak) id <MySceneDelegate> delegate; 
@end 

視圖控制器,顯示現場應該實現一個hideAd方法,並設置本身作爲場景的代表。例如:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    // Configure the view, etc. 
    ... 

    // Set the delegate 
    [scene setDelegate:self]; 

    // Present the scene. 
    [skView presentScene:scene]; 
} 

然後在您不想顯示廣告的場景,你可以調用其設定爲一個委託視圖控制器的hideAd方法:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    /* Called when a touch begins */ 

    if ([_delegate respondsToSelector:@selector(hideAd)]) 
    { 
     [_delegate performSelector:@selector(hideAd)]; 
    } 
} 

你可以告訴視圖控制器以相同的方式顯示廣告。 希望它有幫助。

+0

謝謝!會試試這個。 –

+0

沒問題的隊友:) – RaffAl

+0

嗨有什麼機會可以顯示這個代碼在項目中工作?我嘗試添加協議,但仍然在展示廣告時我試圖隱藏它。 –

相關問題