Как да добавите BannerViewController

Имам проект, изграден на базата на класическия шаблон за главни детайли, предоставен веднага от Xcode. Опитвам се да включа iAdSuite BannerViewController без много успех.

Добавих BannerViewController.m & .h към моя проект, но се боря да накарам приложението си да извиква viewDidLoad в BannerViewController. Прегледах извадката TabbedBanner доста обстойно и все още не виждам къде BannerViewController е "свързан".

Опитах да добавя BannerViewController като дъщерен контролер за изглед

BannerViewController *vbc = [[BannerViewController alloc] init];
[navigationController addChildViewController:vbc];

Този код води до трагичен край.

Всяко вникване в този примерен код или съвети къде да намерите допълнителна информация за използването на споделен банер ще бъде оценено.


person Sean Murphy    schedule 02.05.2015    source източник
comment
Този код води до трагичен край. Хахаха, какво!? Какво точно искате да постигнете и какво всъщност прави вашият код?   -  person luk2302    schedule 02.05.2015
comment
Той създава неуловено изключение в addBannerViewController. Основната цел е да се използва един екземпляр на iAd банер в приложението, за да се намали времето за извличане на реклама и да се увеличат максимално приходите (според документите на iAd).   -  person Sean Murphy    schedule 02.05.2015
comment
.... какво изключение .... ?   -  person luk2302    schedule 02.05.2015
comment
*** Прекратяване на приложението поради неуловено изключение „NSRangeException“, причина: „*** -[__NSArrayI objectAtIndex:]: индекс 0 извън границите за празен масив“   -  person Sean Murphy    schedule 02.05.2015
comment
И какво ни казва това? опитвате се да получите достъп до елемент в празен масив! къде го правите, xcode трябва да ви каже метод и ред и да покаже проследяване на стека, където е възникнала грешката?   -  person luk2302    schedule 02.05.2015
comment
Точно така, така че дори не съм сигурен, че съм на прав път. Имам чувството, че добавям една глътка към друга. „_contentController = children[0];“ вероятно е първопричината. Въпреки че интересното е, че твърдението не се задейства. Получавам пълно трасиране на стека, просто не съм го включил тук.   -  person Sean Murphy    schedule 02.05.2015
comment
И защо имате достъп до children[0], къде добавяте нещо към този масив? Ако не го направите, тогава няма нищо и следователно нямате достъп до него.   -  person luk2302    schedule 02.05.2015
comment
Допълнителни изследвания показват, че за iOS 7 и по-нови версии методът BannerViewController всъщност не е необходим. Заменя се с кода self.canDisplayBannerAds = YES; Форум за разработчици на Apple   -  person Sean Murphy    schedule 02.05.2015
comment
Не съм запознат с iAdSuite BannerViewController, който споменахте във въпроса си. Можете ли да предоставите връзка? Ако искате да добавите банера програмно, ето отговор, който ви показва как да направите точно това: stackoverflow.com/a/28708377/ 2108547 . Друг вариант е използването на self.canDisplayBannerAds = YES. Добавете това към своя viewDidLoad и сте готови. Този метод за прилагане на вашия ADBannerView обаче няма да позволи много контрол.   -  person Daniel Storm    schedule 03.05.2015
comment
Има два комплекта примерен код: iAdSuite и iAdSuite_with_storyboards.   -  person Sean Murphy    schedule 09.05.2015


Отговори (1)


В сценария: добавете нов контролер за изглед, задайте класа му на bannerViewController и добавете изглед на контейнер към този VC. Втори VC ще бъде добавен, когато добавите изгледа на контейнера, изтрийте го.

Изтрийте връзката между основния контролер за навигация и контролера за изглед на таблица.

Добавете „сегмент на контролер за изглед на корен“ между контролера за навигация и контейнер, изглед и „сегмент за вграждане“ между изгледа на контейнер и изгледа на таблица.

Ще трябва да промените кода за корекции на рамката в bannerViewController->viewDidLayoutSubviews, за да вземете предвид лентата за навигация в контролера за навигация. Това ще ви покаже рекламни банери в изгледа на таблицата, все още не съм разбрал как да ги накарам да се показват в изгледа с подробности.

Късмет.

person mikejl    schedule 16.05.2015