Я следую Apple's best practices for iAd при создании единого рекламного объекта iAd для всего приложения в своем делете приложения - как он говорит, вы должны создать один ADBannerView
и поделиться им по всем Просмотры. Я называю следующий метод, чтобы инициализировать его в моем приложении делегата:iAds не отображается на первом экране приложения - объявление не загружено
- (void)initializeAds {
// bannerAd is a property of MyAppDelegate
bannerAd = [[ADBannerView alloc] initWithFrame:CGRectZero];
bannerAd.delegate = self;
bannerAd.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait;
}
И тогда в моем UIViewController, я имею в виду
MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
ADBannerView *myBannerView = appDelegate.bannerAd;
Это прекрасно работает в большинстве моего приложения, работает мой рекламный код отображения для текущего UIViewController в viewDidAppear:
. Однако, на первом UIViewController (корневом UIViewController), когда приложение изначально открыто, оно не отображает объявление. Кажется, что он еще не загрузил объявление. Но когда я перехожу к другому UIViewController, а затем возвращаюсь, объявление отображается, по-видимому, потому, что у него была возможность загрузить объявление. Я запускаю свое тестовое устройство со скоростью заполнения 100%. Как я могу заставить iAd попытаться получить объявление до того, как будет запущен мой код?
Возможно, это связано с тем, что Adserver будет выполнять как подключение, так и отсоединение в целях тестирования, не стоит беспокоиться, что он предназначен только для тестирования –