Appleのドキュメントでは、iAdのベストプラクティスのセクションでこれについて言及しています。
ユーザーがバナービューのあるコンテンツの画面からバナービューのない画面に移動し、その画面に長時間表示されることが予想される場合は、ビュー階層からバナービューを削除して設定します。コンテンツの新しい画面に移行する前に、nilに委任して解放します。より一般的には、ユーザーに見えないときにバナービューを維持することは避けてください。
どうすればこれを正確に行うことができるのでしょうか。2つのタブを持つtabBarアプリケーションがあります。そして、最初のタブが表示されていないときにiAdBannerViewを削除したいと思います。そして、再び表示されたらロードし直します。私はviewWillAppearを使用して追加をロードしています。そして、viewWillDisappearでバナーを削除しようとしています。
このようにビューからbannerViewを削除しようとしましたが、
[[[self.view subviews] lastObject] removeFromSuperview];
次に、タブ2に移動すると削除されます。ただし、タブ1をもう一度タップすると、バナーが再度読み込まれることはありません。
これを行うための最良の方法は何ですか?
これがviewWillAppearコードです
-(void)viewWillAppear:(BOOL)animated
{
ADBannerView *banner = [[ADBannerView alloc] initWithFrame:CGRectMake(0, 200, 0, 0)];
banner.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait;
banner.delegate = self;
[self.view addSubview:banner];
[banner release];
}