iAd 横幅无法正确加载

iAd Banner won't load correctly

我遵循了有关如何在我的应用程序中实施共享 iads 横幅的 youtube 教程。我有 10 VC,所以这就是我通过委托选择共享 iads 的原因。每当我启动应用程序(在设备或模拟器上)时,广告都不会出现在第一个视图控制器上。如果我切换到第二个 VC,它将正确加载和显示。然后,如果我决定去第三个 VC 或回到第一个 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. 使用故事板自动布局定位横幅或使用占位符获取后面横幅的位置。
  2. 删除动画并替换为 .hidden=true=false
  3. 在情节提要中或在初始化时将广告横幅设置为 hidden