2013-07-02 3 views
3

Я пытаюсь отобразить iADs в моей игровой сцене cocos2d. Я могу успешно показывать рекламу, но я хочу, чтобы показать контроллер просмотра на экране, только когда объявление отображается.Как получить методы iAD для вызова

Итак, для этого я попытался использовать баннер - (void) bannerViewDidLoadAd: (ADBannerView *), который, как я полагал, будет вызван, если я добавлю его в реализацию контроллеров представления. Но его вообще не называют. Ниже мой код.

Не могли бы вы сообщить мне, если я делаю что-то неправильно. Спасибо :)

BannerAd.h

@interface BannerAd: UIViewController <ADBannerViewDelegate> 
{ 
    id delegate; 
} 

@property (nonatomic, retain) ADBannerView *adView; 

-(id)init: (id) dele; 
-(void) removeAd; 
-(void) bannerViewDidLoadAd:(ADBannerView *)banner; 

@end 

BannerAd.m

@implementation BannerAd 

@synthesize adView = adView_; 

-(id)init: (id) dele 
{ 
    if((self=[super init])) 
    { 
     NSLog(@"init called, delegate set"); 
     delegate = dele; 
    } 
    return self; 
} 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    self.adView = [[ADBannerView alloc] initWithFrame:CGRectZero]; 
    self.adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait; 
    [self.view addSubview:self.adView]; 
} 

-(void) bannerViewDidLoadAd:(ADBannerView *)banner 
{ 
    NSLog(@"AD did load"); 
} 

Внутри моей игровой сцены (cocos2d сцена) я называю это:

BannerAd *bannerAdDetailView = [[BannerAd alloc] init]; 
    [bannerAdDetailView init:self]; 
    [[[CCDirector sharedDirector]view] addSubview:bannerAdDetailView.view]; 
    [bannerAdDetailView.view setFrame:CGRectMake(0, 0, 320, 568)]; 

Пожалуйста, дайте мне знать, как я могу убедиться, что мое приложение будет уведомлено, когда объявление загрузится.

Спасибо!

ответ

0

вы можете использовать Ad Banner View Delegate Protocol: - bannerViewDidLoadAd: в этом методе вы можете настроить видимость баннера. Вот ссылка, если не было загружено ни одного объявления: Hide Bannerview when no ad was received.

+1

Как я уже говорил, я знаю, какой из них использовать. У меня просто есть проблема с его внедрением. Метод bannerViewDidLoadAd не получает вызов ... Я добавляю его в нужное место? благодаря – AbhinavVinay

4

Вы должны установить ADBannerView делегат (добавить в viewDidLoad метод):

self.adView.delegate = self; 

Это говорит вид баннера, который является целью вызова метода bannerViewDidLoadAd. В этом случае это ваш контроллер.

Смежные вопросы