3

我正在尝试将 iAD 显示到我的 cocos2d 游戏场景中。我能够成功显示广告,但我希望仅在显示广告时才能在屏幕上显示视图控制器。

因此,为此我尝试使用 -(void)bannerViewDidLoadAd:(ADBannerView *)banner 方法,如果我将它添加到我的视图控制器实现中,我相信它会被调用。但它根本没有被调用。下面是我的代码。

如果我做错了什么,请告诉我。谢谢 :)

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)];

请告诉我如何确保在加载广告时通知我的应用程序。

谢谢!!

4

2 回答 2

4

您需要设置ADBannerView委托(添加到viewDidLoad方法):

self.adView.delegate = self;

这告诉横幅视图谁是方法调用的目标bannerViewDidLoadAd。在这种情况下,它是您的视图控制器。

于 2013-07-23T12:23:22.763 回答
0

您可以使用广告横幅视图委托协议: – bannerViewDidLoadAd:在此方法中,您可以设置横幅视图可见。以下是未加载广告时的参考:未收到广告时隐藏 Bannerview

于 2013-07-07T01:53:00.620 回答