如何在我的应用程序中全局查看iAd?

时间:2012-04-02 07:01:19

标签: objective-c ios adbannerview

我正在开发一个应用程序,我必须在我的应用程序的所有页面中显示iAds。 我创建了一个UIView的子类,我正在初始化ADBannerView及其委托方法。

但是现在如果我在AppDelegate类的窗口中添加它,它会在运行时给出跟随错误 “ADBannerView必须是由UIViewController管理的视图层次结构的一部分”..

我认为这意味着我只能在UIViewController的子类文件中使用ADBanner吗?

如果是,那么我怎样才能使它成为全局?

先谢谢 SHREYA

1 个答案:

答案 0 :(得分:6)

在AppDelegate类中,您可以创建一个共享对象。

- (ADBannerView *) sharedBannerView
{
    if (_sharedBannerView == nil)
    {
        Class classAdBannerView = NSClassFromString(@"ADBannerView");

        if (classAdBannerView != nil)
        {
            _sharedBannerView = [[classAdBannerView alloc] initWithFrame:CGRectMake(0, 480, 320, 50)];

            // pre 4.2 doesn't have the new AdBannerSize constants. 
            if (&ADBannerContentSizeIdentifierPortrait != NULL)
            {
                [_sharedBannerView setRequiredContentSizeIdentifiers:[NSSet setWithObjects:ADBannerContentSizeIdentifierPortrait, ADBannerContentSizeIdentifierLandscape, nil]];            
            }
            else
            {  
                [_sharedBannerView setRequiredContentSizeIdentifiers:[NSSet setWithObjects:ADBannerContentSizeIdentifier320x50, ADBannerContentSizeIdentifier480x32, nil]];            
            }
        }   
    }

    ((ADBannerView *)_sharedBannerView).backgroundColor = [UIColor whiteColor];

    return _sharedBannerView;
}

将此共享对象添加到视图中,只需显示iAd即可。 希望你明白。