2012-01-22 1 views
1

私の契約はすべて稼動しており、ADBannerViewデリゲートを実装しています。バナーはインターネットに接続されていない状態で消えるはずですが、コンテンツがあるはずの白いボックスが表示されます。私はすべてのコードが正しいことを知っている、私はこれについて100万のチュートリアルを見た。だから私はいくつかのテストを実行し、バナービューがデリゲートの2つのメソッドを呼び出すことさえなかったことを発見しました!ここにコードがあります。iAdバナー表示代理人以外の方法を呼び出す

.hファイルで

:あなたは、ファイルの所有者にバナーデリゲートを設定する必要が

@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; } 
    } 
+0

を宣言するために以下のコードを使用しますか –

+0

接続があると1つが呼び出され、ないときは1つが返されます –

+0

右、方法の意味を理解しています。私が尋ねるのは、接続があるときにコードが機能するかどうかです。彼らは接続に関係なく、まったく動作しないことがあります。 –

答えて

3

:.mファイル内

#import <iAd/iAd.h> 

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

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

@end 

。私は同じ問題を抱えていました。壁に頭を打つと、それは簡単でした。

+0

コードで表示できますか? – 4GetFullOf

+0

私はdelegatesをfilesownerに設定しましたが、bannerViewDidLoadAdは呼び出しません。 – seggy

0

作業の接続があるときデリゲートメソッドが呼び出されるのですか?あなた自身のデリゲート

-(void)viewDidLoad { 
    aBanner.delegate = self; 
} 
関連する問題