2011-07-15 14 views
1

iAdSuiteをダウンロードし、ADBannerNavigationを調べました。ADBanner表示スペースを表示するときに広告が表示される空白

内部では、iAdバナーのサイズ変更を利用するために、RootViewControllerをTextViewControllerのサブクラスに変更しました。私はRootViewにも広告を表示したい。

これは今RootViewController.hです:他に

#import <UIKit/UIKit.h> 
#import "TextViewController.h" 

@interface RootViewController : TextViewController 

@end 

すべてが同じです。コンパイルして実行すると、RootViewに広告が表示されず、TextViewをクリックすると広告が突然表示されます。

クリックして戻ると、RootViewに空白が追加されました。

なぜですか? 空白をどのように削除しますか?

答えて

0

ADBannerViewの削除方法のエラーが見つかりました。

のiAd Suiteはに教えてくれる:

注:アプリケーションがにiAdバナーを表示する複数のタブまたはビューを持っている場合は、各ビューを越えADBannerViewの単一のインスタンスを共有するようにしてください。次に、ユーザーが新しいビューに移動する前に、共有インスタンスのdelegateプロパティをnilに設定し、古いビュー階層から削除してから、同じインスタンスをオープニングビューに追加し、そのデリゲートを適切なビューコントローラに設定します。 「AdBannerNavigation」サンプルには、この手法が示されています。

だから、私のiADBannerView.mで、私が持っている:

- (void)viewWillDisappear:(BOOL)animated{ 
    [self removeADBannerFromView]; 
    [super viewWillDisappear:animated]; 
} 

- (void)removeADBannerFromView{ 
    NSLog(@"ad removed from view"); 
    ADBannerView *adBanner = SharedAdBannerView; 
    adBanner.delegate = nil; 
    [adBanner removeFromSuperview]; 
} 

- (void)dealloc{ 
    // we are being called here when we navigate away from this view controller, 
// so go ahead and reset our AdBannerView for the next time 
// 


ADBannerView *adBanner = SharedAdBannerView; 
adBanner.delegate = nil; 
[adBanner removeFromSuperview]; 

[contentView release]; contentView = nil; 

    [super dealloc]; 
} 

ブレークポイントを設定することで、私は、viewWillAppearはview0に、その後、ビューを終了することで、viewWillDisappearがVIEW1で呼び出されていたことを見たとのdeallocビュー1に。

問題は、view1が既にビューからADBannerViewを削除したため、[adBanner removeFromSuperView]がview0から広告を削除していたことです。

問題は、deallocメソッドから問題のコードを削除して解決しました。

関連する問題