2012-04-10 1 views
5

Я внедрил AdMob & все, кажется, работает,
Но я удивляюсь, как я могу разместить баннер во всех моих контроллерах представления?
На данный момент у меня есть баннер только на RootViewController.
У меня есть всего 4 контроллера вида.
Спасибо.AdMob во всех моих контроллерах?

ответ

1

Я не знаю, как AdMob работает, но как и все остальное вы можете создать BaseViewController, в котором вы можете добавить свой AdMob (в методе viewDidLoad), а затем все остальные viewControllers могут Подкласс этот BaseViewController. просто позвоните [super viewDidLoad]; в viewDidLoad методы ваших viewControllers и вы будете иметь его ...

надеясь, что это сортирует вашу проблему ... :)

+0

Благодаря Анкит, Итак, позвольте мне понять ... Если у меня есть это в viewDidLoad из RootViewController: CGRect кадра = CGRectMake (0.0, self.view.frame.size.height, GAD_SIZE_320x50.width , GAD_SIZE_320x50.height); self.adBanner = [[GADBannerView alloc] initWithFrame: frame]; Как я могу написать то, что вы сказали в каждом представленииDidLoad для каждого VC? Извините, это просто, что я новичок во всех этих вещах ... –

+0

everyViewController будет подклассифицировать rootViewController, а затем просто вызвать [super viewDidLoad]; в методах viewDidLoad вашего viewControllers, и у вас будет это ... –

5

То, что вы хотите здесь является GADBannerView одноточечно сортов. Вы, вероятно, может создать класс оберточной действовать как синглтон для вашего AdView, так что-то вроде:

@interface GADMasterViewController : UIViewController { 
    GADBannerView *adBanner_; 
    BOOL didCloseWebsiteView_; 
    BOOL isLoaded_; 
    id currentDelegate_; 
} 

и просто убедитесь, что GADMasterViewController всегда возвращает синглтон:

+(GADMasterViewController *)singleton { 
    static dispatch_once_t pred; 
    static GADMasterViewController *shared; 
    // Will only be run once, the first time this is called 
    dispatch_once(&pred, ^{ 
    shared = [[GADMasterViewController alloc] init]; 
    }); 
    return shared; 
} 

есть метод, который перезагружает ток-контроллер, который, держась за AdView:

-(void)resetAdView:(UIViewController *)rootViewController { 
    // Always keep track of currentDelegate for notification forwarding 
    currentDelegate_ = rootViewController; 

    // Ad already requested, simply add it into the view 
    if (isLoaded_) { 
    [rootViewController.view addSubview:adBanner_]; 
    } else { 

    adBanner_.delegate = self; 
    adBanner_.rootViewController = rootViewController; 
    adBanner_.adUnitID = kSampleAdUnitID; 

    GADRequest *request = [GADRequest request]; 
    [adBanner_ loadRequest:request]; 
    [rootViewController.view addSubview:adBanner_]; 
    isLoaded_ = YES; 
    } 
} 

Тогда отображение вашего объявления является только вопросом:

Возможно, вам необходимо настроить делегат для переадресации уведомлений, так как SDK AdMob не подходит для делегатов, которые меняют его в середине запроса.

Вы можете найти сообщение в блоге об этом here.

+0

Спасибо RajPara, я попытался следить за этим сообщением в yesturday, но «я заблудился» и не сделал этого: \ ... новый во всем этом –

+0

Можете ли вы предоставить более подробную информацию о том, где вы потерялись? Если у вас есть конкретные вопросы, вы можете определенно попытаться помочь им с ними – RajPara