iAd横幅视图代表不调用方法

时间:2012-01-22 19:30:15

标签: objective-c ios iad

我有一个iAd横幅视图,我的所有合同都已启动并运行,我已经实现了ADBannerView代理。横幅应该在没有互联网连接的情况下消失,但它只显示内容应该是的白色框。我知道我的所有代码都是正确的,我已经看过一百万个关于此的教程。所以我运行了一些测试,发现横幅视图甚至没有为委托调用两种方法!这是代码。

在.h文件中:

#import <iAd/iAd.h>

@interface DetailViewController : ADBannerViewDelegate>
{
    ADBannerView *aBanner;
    BOOL bannerIsVisible;
}

@property (nonatomic, retain) IBOutlet ADBannerView *aBanner;
@property (nonatomic, assign) BOOL bannerIsVisible;

@end
<。>文件中的

@implementation DetailViewController

@synthesize aBanner,bannerIsVisible;

//Show banner if can load ad.
-(void)bannerViewDidLoadAd:(ADBannerView *)banner
      { 
         if (!self.bannerIsVisible) { 
            [UIView beginAnimations:@"animateAdBannerOn" context:NULL]; banner.frame = CGRectOffset(banner.frame, 0, -banner.frame.size.height); 
            [UIView commitAnimations]; self.bannerIsVisible = YES; }
      }

    //Hide banner if can't load ad.
    -(void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
    { 
        if (self.bannerIsVisible) { 
            [UIView beginAnimations:@"animateAdBannerOff" context:NULL]; banner.frame = CGRectOffset(banner.frame, 0, banner.frame.size.height);           
            [UIView commitAnimations]; self.bannerIsVisible = NO; }
    }

2 个答案:

答案 0 :(得分:3)

您必须将横幅委托设置为文件所有者。我遇到了同样的问题,在撞到墙上之后就这么简单了。

答案 1 :(得分:0)

使用下面显示的代码声明您自己的代理

-(void)viewDidLoad {
  aBanner.delegate = self;
}