iphone – 我所有视图控制器中的AdMob?
发布时间:2020-12-14 17:56:36 所属栏目:百科 来源:网络整理
导读:我已经实施了AdMob一切似乎都有效, 但我想知道,我怎么能把横幅放在我的所有视角控制器中? 现在,我只在RootViewController上有横幅. 我总共有4个视图控制器. 谢谢. 解决方法 你想要的是一个GADBannerView单例.您可以创建一个包装类来充当adView的单例,如下所
我已经实施了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的博客文章. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |