在https://developer.apple.com/library/ios/technotes/tn2286/_index.html,Apple建议应用程序仅共享ADBannerView的实例。现在我有两个UIViewControllers,所以我设置了以下代码:
Singleton.h
ADBannerView *iadBanner;
Singleton.m
- (void)bannerViewDidLoadAd:(ADBannerView *)banner {
NSLog(@"Bank loaded iAd!");
[ViewController1 showiAd:(iadBanner)];
[ViewController2 showiAd:(iadBanner)];
}
ViewController1.h
ADBannerView *iadBanner;
ViewController1.m
- (void)showiAd:(ADBannerView *)ad {
NSLog(@"VC iAd Shown!");
iadBanner = ad;
[iadBanner setFrame:CGRectMake(0, 20, 320, 50)];
[self.view addSubview:iadBanner];
}
ViewController2.h / ViewController2.m与ViewController1.h / .m
相同不是两个UIViewControllers都显示广告,而只有第二个广告显示。现在我猜这是因为他们都指的是同一个实例,而不是创建从Singleton类传递的另一个iadbanner实例。有人知道如何解决这个问题吗? :)