iphone - iPhone 应用程序中的全局 ADBannerView

标签 iphone uinavigationcontroller iad

使用标准的 UINavigationController 根应用程序是否可以在屏幕底部、 View 层次结构下方显示单个 ADBannerView?也就是说,在不修改每个可以推送到根 UINavigationController 的 View Controller / View 的情况下,我可以让全局 ADBannerView 可见吗?

我不确定如何在 IB 或代码中进行设置。帮忙?

我看到类似的问题,但答案很模糊。我正在寻找一个具体的例子。

最佳答案

编辑:在 iOS5+ 中执行此操作的更好方法可能是使用 View Controller 包含。也就是说,创建一个包含广告和应用程序 Controller (导航、标签等)的根 Controller 。

我想出了一个方法来做到这一点。这是我所做的:

在我的第一次尝试中,我创建了一个名为 AdBannerController 的新 View Controller 。对于其 View ,我创建了一个全屏 View 和两个 subview 。第一个 subview (contentView) 用于常规内容,第二个 subview 是 AdBannerView。我使用此 View Controller 的实例作为与应用程序窗口关联的 View Controller ( [window addSubview: adBannerController.view] )。然后我将 UINavigationController.view 添加为 adBannerController.view 的 subview :[adBannerController.contentView addSubview:navigationController.view]。

除了推送到 UINavigationController 的 View Controller 从未调用其 will/did-load/unload 方法之外,这大部分都有效。嘘。我在一些地方读到,这是 UINavigationController View 不是应用程序窗口的直接后代的症状。

在第二次尝试中,我采用了相同的 AdBannerController 并从 UINavigationController 派生它。这次,我在loadView中做了以下操作:

- (void)loadView
{
    [super loadView];

    _contentView = [self.view retain];

    self.view = [[[UIView alloc] initWithFrame: _contentView.frame] autorelease];

    [self.view addSubview: _contentView];

    _adView = [[ADBannerView alloc] initWithFrame: CGRectMake(0, _contentView.bounds.size.height, 320, 50)];
    _adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifier320x50;
    _adView.delegate = self;

    [self.view addSubview: _adView]; 

    /* for visual debugging of view layout
    [[_mainView layer] setCornerRadius: 6.0];
    [[_mainView layer] setMasksToBounds: YES];
    [[_mainView layer] setBorderWidth: 1.5];
    [[_mainView layer] setBorderColor: [[UIColor grayColor] CGColor]];  
     */
}

注意发生了什么 - 我让父类(super class) UINavigationController 构造其常规“内容” View ,但我将其交换并用我自己的 View 替换,该 View 是内容和广告 View 的容器。

这个效果非常好。我也在使用 Three20,需要做一些事情才能使其与该设置一起工作,但还不错。

我希望这对某人有帮助!

关于iphone - iPhone 应用程序中的全局 ADBannerView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3669272/

相关文章:

iphone - iPhone 上的 iAd 测试

swift - iad 的 didFailToReceiveAdWithError 函数不工作

iphone - iOS - 使用导航 Controller 旋转

iphone - 在枚举期间中断 for 循环( Objective-C )

uinavigationcontroller - 在 iOS7 中从 UINavigationController 滑动弹出时查看 Controller 生命周期

ios - 处理容器 Controller 中 subview Controller 的 UINavigationItem 更改的最佳实践?

iOS 重置重用的 ViewController 或 ASIHTTPRequest 问题?

iphone - 如何激活@ 2x高分辨率图形以进行视网膜显示?

ios - Google Admob 集成错误

ios - iAd ADBannerView 检测卸载