Как сделать так, чтобы iAd можно было просматривать по всему миру в моем приложении? - PullRequest
5 голосов
/ 02 апреля 2012

Я разрабатываю приложение, в котором мне нужно показывать iAds на всех страницах моего приложения. Я создал подкласс UIView, где я инициализирую ADBannerView и его методы делегата.

Но теперь, еслиЯ добавляю его в окно в классе AppDelegate, оно дает мне следующую ошибку во время выполнения: «ADBannerView должен быть частью иерархии представления, управляемой UIViewController» ..

Я думаю, это означает, что я могу использовать ADBanner только вФайл подкласса UIViewController ??

, если это так, то как я могу сделать его глобальным ??

Спасибо заранее Шрея

1 Ответ

6 голосов
/ 02 апреля 2012

В классе 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;
}

И добавить этот общий объект в представление везде, где вам нужно отобразить iAds.Надеюсь, вы это поняли.

...