Implementé AdMob & todo parece funcionar,
Pero me pregunto, ¿cómo puedo poner el banner en todos mis controladores de vista?
Por ahora, tengo el banner solo en RootViewController.
Tengo un total de 4 controladores de vista.
Gracias.AdMob en todos mis controladores de vista?
Respuesta
No sé cómo funciona AdMob pero al igual que todo lo demás se puede crear un BaseViewController
en la que se puede añadir su AdMob (en el método viewDidLoad
) y luego todos los demás viewControllers puede subclase este BaseViewController
. simplemente llame [super viewDidLoad];
en los métodos de viewDidLoad
sus viewControllers y lo tendrá ...
esperando que esto ordena su problema ... :)
Lo que se quiere aquí es un producto único GADBannerView
de clases. Probablemente se puede crear una clase envoltorio para actuar como un producto único para su adView, así que algo como:
@interface GADMasterViewController : UIViewController {
GADBannerView *adBanner_;
BOOL didCloseWebsiteView_;
BOOL isLoaded_;
id currentDelegate_;
}
Y sólo asegúrese de que GADMasterViewController
siempre devuelve un producto único:
+(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;
}
tener un método que restablece el controlador de vista actual que se aferra a la 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;
}
}
Entonces mostrando su anuncio es sólo una cuestión de:
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
shared = [GADMasterViewController singleton];
[shared resetAdView:self];
}
Probablemente necesite configurar un delegado para reenviar notificaciones también, ya que el SDK de AdMob no funciona bien para los delegados que cambian en el medio de una solicitud.
Puede encontrar una publicación de blog sobre este here.
Gracias RajPara, traté de seguir este post yesturday pero "me perdí" y no logré hacer eso: \ ... nuevo en todo esto –
¿Puede proporcionar más detalles sobre dónde se perdió? Si tiene preguntas específicas definitivamente puede intentar ayudarlo con ellas – RajPara
- 1. ¿Debo probar mis controladores (MVC)?
- 2. Ocultar controladores de vista modal
- 3. UItabBar cambiar controladores de vista
- 4. Problema descartando múltiples controladores de vista modal
- 5. Encontrar todos los controladores en la aplicación
- 6. Usando Zend_Auth para asegurar todos los controladores
- 7. Uso de varios controladores en una vista en Rails
- 8. "Popping" Varios Controladores de Vista en UINavigationController Stack
- 9. ¿Cómo ocultar/desactivar la vista previa de admob?
- 10. Pasando variables entre los controladores de vista
- 11. Cómo mostrar todos los controladores y las asignaciones en una vista
- 12. Prueba de controladores de vista de iPhone: ¿por dónde empezar?
- 13. ¿Cómo reinicio todos mis códigos en Eclipse?
- 14. ¿Cómo puedo presionar los controladores de vista en vista detallada de la muestra de Apple MultipleDetailViews?
- 15. Controladores vs. Vista de nivel de aplicación en Backbone.js
- 16. Admob en actividades múltiples?
- 17. Admob, fillrate realmente malo
- 18. Cómo eliminar todos los controladores de eventos Click en Jquery
- 19. ¿Controladores de vista múltiple en la pantalla a la vez?
- 20. IBOutlets a otros controladores de vista en el guión gráfico
- 21. Cómo crear nuevos Controladores de Vista en XCode 4.3
- 22. Cómo descartar 2 controladores de vista modal en sucesión?
- 23. ¿Cómo encontrar todos los controladores en Spring MVC?
- 24. Cómo enumerar programáticamente todos los controladores en Rails
- 25. Usando vista personalizada controladores para gestionar diferentes porciones de la misma vista de jerarquía
- 26. Dos controladores para una vista compartida en Ruby on Rails
- 27. Controladores de vista: ¿cómo cambiar entre vistas mediante programación?
- 28. AdMob bandera cubre vista de texto al teclado en pantalla aparece
- 29. anuncios de AdMob no presentarse
- 30. Conmutación programática de los controladores de vista MVC - iOS
Gracias Ankit, Así que déjame entender ... Si tengo esto en el viewDidLoad del RootViewController: marco CGRect = CGRectMake (0.0, self.view.frame.size.height, GAD_SIZE_320x50.width , GAD_SIZE_320x50.height); self.adBanner = [[GADBannerView alloc] initWithFrame: frame]; Entonces, ¿cómo escribo lo que ha dicho en cada viewDidLoad para cada VC? Lo siento, es solo que soy nuevo en todas estas cosas ... –
everyViewController subclase rootViewController y luego simplemente llame a [super viewDidLoad]; en los métodos viewDidLoad de tus viewControllers y lo tendrás ... –