5

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

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

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

如果是这样,那么我怎样才能使它成为全球性的?

在此先感谢 Shreya

4

1 回答 1

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 的视图中。希望你能明白。

于 2012-04-02T07:13:34.883 回答