5

アプリケーションのすべてのページにiAdを表示する必要があるアプリケーションを開発しています。ADBannerViewとそのデリゲートメソッドを初期化するUIViewのサブクラスを作成しました。

しかし、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 に答える