我已经实现AdMob与一切似乎工作,
但我wonderd,我怎么可以把旗帜在我所有的视图控制器吗?
现在,我只有在RootViewController的旗帜。
我有总共4个视图控制器。
谢谢。
Answer 1:
你想要的这里是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;
}
具有将复位的控股到AD浏览当前视图控制器的方法:
-(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的不作为以及向与会代表在请求的中间就可以了改变。
你可以找到一个博客帖子关于这个在这里 。
Answer 2:
我不知道如何运用AdMob的作品,但像任何事物一样,你可以创建一个BaseViewController
您可以在其中添加您的AdMob(在viewDidLoad
的方法),然后所有其他viewControllers可以继承这个BaseViewController
。 只需要调用[super viewDidLoad];
在viewDidLoad
的viewControllers的方法,你将有它...
希望这排序您的问题... :)
文章来源: AdMob in all my view controllers?