ビュー コントローラで iAd を制御するには、デリゲートをセットアップして iAd の状態をリッスンします。
@interface MyViewController : UIViewController <ADBannerViewDelegate>
...
@property (nonatomic, weak) IBOutlet ADBannerView* banner;
@end
次に、実装ファイルで:
@implementation MyViewController
- (void)viewDidLoad
{
...
[_banner setHidden:YES];
_banner.delegate = self;
}
...
#pragma mark - ADBannerViewDelegate implementation
- (void)bannerView:(ADBannerView*)banner didFailToReceiveAdWithError:(NSError*)error
{
// iAd is not available, so we are going to hide it to get rid of ugly white rectangle
[_banner setHidden:YES];
// Here you can add your logic to show your other ads
}
- (void)bannerViewDidLoadAd:(ADBannerView*)banner
{
// iAd is available, lets show it
[_banner setHidden:NO];
// Here you can add your logic to hide your other ads
}
@end
また、通常はADBannerViewのインスタンスを1つだけ保持し、App Delegateに入れ、ビューコントローラーが画面に表示されたら、そのADBannerViewをビューコントローラーのビュー階層に追加し、ビューコントローラーが消えたら削除します。