iAd Banner无法正确加载

时间:2015-03-27 17:50:09

标签: ios xcode iad

我按照了一个关于如何在我的应用中实现共享iads横幅的youtube教程。我有10个VC,所以这就是我通过委托选择共享iads的原因。每当我启动应用程序(在设备或模拟器上)时,广告都不会出现在第一个视图控制器上。如果我切换到第二个VC,它将加载并正确显示。然后,如果我决定转到第3个VC或回到第1个VC,横幅将为白色,不会加载任何广告(即使我等待或转到任何其他VC)。 也许我看过的教程没有写得正确,我不知道说实话。这是使用的代码:

AppDelegate.h

@property (strong, nonatomic) ADBannerView *UIiAD;

AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{     
 _UIiAD = [[ADBannerView alloc] init];
return YES;
}

ViewController.h

@property (strong, nonatomic) ADBannerView *UIiAD;

ViewController.m

- (AppDelegate *) appdelegate {
return (AppDelegate *)[[UIApplication sharedApplication] delegate];
}

-(void) viewWillAppear:(BOOL)animated{
_UIiAD = [[self appdelegate] UIiAD];
_UIiAD.delegate = self;

if ((int)[[UIScreen mainScreen] bounds].size.height == 568)
{
    [_UIiAD setFrame:CGRectMake(0,518,320,50)];
}
if ((int)[[UIScreen mainScreen] bounds].size.height == 480)
{
    [_UIiAD setFrame:CGRectMake(0,430,320,50)];
}
if ((int)[[UIScreen mainScreen] bounds].size.height == 667)
{
    [_UIiAD setFrame:CGRectMake(0,600,320,50)];
}
if ((int)[[UIScreen mainScreen] bounds].size.height == 736)
{
    [_UIiAD setFrame:CGRectMake(0,660,320,50)];
}


[self.view addSubview:_UIiAD];
}

-(void) viewWillDisappear:(BOOL)animated{

[_UIiAD removeFromSuperview];
_UIiAD.delegate = nil;
_UIiAD = nil;    
}

-(void)bannerViewDidLoadAd:(ADBannerView *)banner{
NSLog(@"ads loaded");
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0];
[_UIiAD setAlpha:1];
[UIView commitAnimations];

self.fullscreen = [[RevMobAds session] fullscreen];
self.fullscreen.delegate = self;
[self.fullscreen loadAd];
}

-(void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error{
NSLog(@"ads not loaded");
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0];
[_UIiAD setAlpha:0];
[UIView commitAnimations];
}

结论

我尝试在ViewWillAppear方法中添加延迟但它不起作用。 我将横幅放在故事板中并确保它在0 alpha上。 SO没有其他答案对我有帮助,所以希望有人能够解决这个问题。谢谢!

1 个答案:

答案 0 :(得分:1)

结束我的评论,

  1. 使用故事板自动布局来定位横幅或使用占位符来获取后一横幅的位置。
  2. 移除动画并将其替换为.hidden=true=false
  3. 在故事板或初始化时将adBanner设置为hidden