iOS   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了iphone – 我所有视图控制器中的AdMob?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我已经实施了AdMob&一切似乎都有效, 但我想知道,我怎么能把横幅放在我的所有视角控制器中? 现在,我只在RootViewController上有横幅. 我总共有4个视图控制器. 谢谢. 你想要的是一个GADBAnnerView单例.您可以创建一个包装类来充当adView的单例,如下所示: @interface GADMasterViewController : UIViewController
我已经实施了AdMob&一切似乎都有效,
但我想知道,我怎么能把横幅放在我的所有视角控制器中?
现在,我只在RootViewController上有横幅.
我总共有4个视图控制器.
谢谢.

解决方法

你想要的是一个GADBAnnerView单例.您可以创建一个包装类来充当adView的单例,如下所示:

@interface GADMasterViewController : UIViewController {
  GADBAnnerView *adBAnner_;
  BOOL didCloseWebsiteView_;
  BOOL isLoaded_;
  id currentDelegate_;
}

并确保GADMasterViewController始终返回一个例:

+(GADMasterViewController *)singleton {
  static dispatch_once_t pred;
  static GADMasterViewController *shared;
  // Will only be run once,the first time this is called
  dispatch_once(&pred,^{
    shared = [[GADMasterViewController alloc] init];
  });
  return shared;
}

一个方法可以重置当前持有adView的视图控制器:

-(void)resetAdView:(UIViewController *)rootViewController {
  // Always keep track of currentDelegate for notification forWARDing
  currentDelegate_ = rootViewController;

  // Ad already requested,simply add it into the view
  if (isLoaded_) {
    [rootViewController.view addSubview:adBAnner_];
  } else {

    adBAnner_.delegate = self;
    adBAnner_.rootViewController = rootViewController;
    adBAnner_.adUnitID = kSampleAdUnitID;

    GADrequest *request = [GADrequest request];
    [adBAnner_ loadrequest:request];
    [rootViewController.view addSubview:adBAnner_];
    isLoaded_ = YES;
  }
}

然后展示您的广告只需要:

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    shared = [GADMasterViewController singleton];
    [shared resetAdView:self];
}

您可能还需要设置一个委托以转发通知,因为AdMob SDK不能很好地代表在请求过程中更改它的代理.

你可以找到关于这个here博客文章.

@H_197_58@

大佬总结

以上是大佬教程为你收集整理的iphone – 我所有视图控制器中的AdMob?全部内容,希望文章能够帮你解决iphone – 我所有视图控制器中的AdMob?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。