我正在实施iAds,我已经遵循了很多教程,但找不到任何我认为以聪明的方式做到的事情。 我有多个视图控制器,我想在其上显示广告,所以我创建了一个广告类,我的.m文件如下所示:
#import "AdBanner.h"
#import "AppDelegate.h"
@implementation AdBanner
- (AppDelegate*)appdelegate {
return (AppDelegate *)[[UIApplication sharedApplication] delegate];
}
//in view will appear
-(void)initializeBottomADinView:(UIView*)view{
_UIiAD = [[self appdelegate]UIiAD];
_UIiAD.delegate = self;
[_UIiAD setFrame:CGRectMake(0,view.frame.size.height-50,320,50)];
[view addSubview:_UIiAD];
}
//in viewWillDisappear
-(void)removeAd{
_UIiAD.delegate=nil;
_UIiAD=nil;
[_UIiAD removeFromSuperview];
}
- (void)bannerViewDidLoadAd:(ADBannerView *)banner{
NSLog(@"successfully loaded ad");
[UIView beginAnimations:@"animateAdBannerOff" context:NULL];
_UIiAD.alpha = 1;
[UIView commitAnimations];
}
- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
//remove ad
NSLog(@"failed to load ad");
[UIView beginAnimations:@"animateAdBannerOff" context:NULL];
_UIiAD.alpha = 0;
[UIView commitAnimations];
[_UIiAD removeFromSuperview];
}
所以在每个视图控制器中我想要广告,我只需要调用方法“initializeBottomAdInView:self.view”。 这样我就不必一次又一次地复制代表。
问题是委托方法“bannerViewDidLoadAd”和“bannerViewDidFail”似乎只加载一次。因此,一旦广告未加载,横幅就会被隐藏,因为即使横幅被加载,代表也不会再次运行,它不会再显示出来。
如果有人将广告作为一种方法使用得很好,而不是在每个视图控制器中添加相同的代码,那么分享它就太棒了。
谢谢,