gpt4 book ai didi

iphone - 来自 AppDelegate 的共享 ADBannerView - 如何从代表处获取广告

转载 作者:行者123 更新时间:2023-12-01 16:50:45 24 4
gpt4 key购买 nike

我做了相当多的阅读,发现以下几个问题:
using shared instance of ADBannerView across app with UITableViews
How to make a single shared instance of iAd banner throughout many view controllers?
AdBannerView shared across multiple views, including the rootviewcontroller, how?

我想在 didFinishLoading 方法中的 AppDelegate 类中加载一个 ADBannerView。希望这个 ADBannerView 可以被所有相关的 ViewControllers 检索(通过导入 AppDelegate.h),然后当用户在 VC 之间移动时相应地显示。

我实现的代码如下:

AppDelegate.h
@interface AppDelegate : UIResponder

@property (strong, nonatomic) IBOutlet ADBannerView *adView;
@property (nonatomic, assign) BOOL bannerIsVisible;

- (ADBannerView *)sharedAdBannerView;

AppDelegate.m
ADBannerView *adView;
BOOL bannerIsVisible;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions(NSDictionary *)launchOptions
{
// create the iAdBannerView
adView = [[ADBannerView alloc] initWithFrame:CGRectZero];
adView.frame = CGRectOffset(adView.frame, 0, -50);
adView.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifier320x50];
adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifier320x50;
adView.delegate=self;
self.bannerIsVisible=NO;

// Override point for customization after application launch.
return YES;
}

#pragma begin of iAdBannerView Delegate Methods
- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{

if (self.bannerIsVisible)
{
[UIView beginAnimations:@"animateAdBannerOff" context:NULL];
banner.frame = CGRectOffset(banner.frame, 0, -50);
[UIView commitAnimations];
self.bannerIsVisible = NO;
}

}

- (void)bannerViewDidLoadAd:(ADBannerView *)banner
{

if (!self.bannerIsVisible)
{
[UIView beginAnimations:@"animateAdBannerOn" context:NULL];
// banner is invisible now and moved out of the screen on 50 px
banner.frame = CGRectOffset(banner.frame, 0, 50);
[UIView commitAnimations];
self.bannerIsVisible = YES;
}

}

- (ADBannerView *)sharedAdBannerView
{
return adView;
}

我还尝试了使用 [NSNotificationCenter defaultCenter] postNotificationName: 方法的变体,但最后我遇到了同样的问题:

问题:
在 ViewController 我想显示 ADBannerView 我如何从 AppDelegate 中检索它?

我目前有:
ADBannerView *banner = [[UIApplication sharedApplication] sharedAdBannerView];
[self.view addSubview:banner];

但是我遇到了很多错误,似乎无法绕过它。

错误:UIApplication 没有可见的@interface 声明扇区 sharedAdbannerView。

我敢肯定我错过了一些非常基本的东西。

任何帮助将不胜感激......谢谢,詹姆斯

最佳答案

你必须导入 ADBannerView.h在您的 AppDelegate.m .
顺便看看 Apple 示例项目“iAd Suite

关于iphone - 来自 AppDelegate 的共享 ADBannerView - 如何从代表处获取广告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16069628/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com