但我想知道,我怎么能把横幅放在我的所有视角控制器中?
现在,我只在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的博客文章.
总结以上是内存溢出为你收集整理的iphone – 我所有视图控制器中的AdMob?全部内容,希望文章能够帮你解决iphone – 我所有视图控制器中的AdMob?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)