Ich arbeite mit dem Google Mobile Ads SDK auf iOS und versuche, einige Anzeigen anzuzeigen. Mein Code:GADBannerView Delegate-Methoden nicht aufgerufen, wenn die Ansicht nicht in der Ansichtshierarchie ist
GADBannerView* bannerView = [[GADBannerView alloc] initWithAdSize:GADAdSizeFromCGSize(CGSizeMake(300, 250))];
bannerView.adUnitID = @"hidden";
bannerView.rootViewController = self;
bannerView.delegate = self;
GADRequest* request = [GADRequest request];
request.testDevices = @[ kGADSimulatorID ];
[bannerView loadRequest:request];
Dies funktioniert gut, wenn ich die bannerView
der Ansicht Hierarchie direkt nach dem Code hinzufügen, sehen Sie oben. Allerdings möchte ich es nicht wirklich hinzufügen, bis die Anzeige geladen ist, also wollte ich es verzögern. Ich habe festgestellt, dass wenn die bannerView
nicht in der View-Hierarchie ist, die Delegate-Methoden überhaupt nicht aufgerufen werden. Außerdem habe ich this answer gefunden, was im Einklang mit dem steht, was ich beobachte. Auf der anderen Seite ist dies ein Zitat aus dem GADBannerViewDelegate Header:
/// Tells the delegate that an ad request successfully received an ad. The delegate may want to add
/// the banner view to the view hierarchy if it hasn't been added yet.
- (void)adViewDidReceiveAd:(GADBannerView *)bannerView;
Dies legt nahe, dass es möglich sein soll, diese Delegierten Rückrufe auch wenn die Aussicht ist nicht in der Hierarchie zu erhalten, das ist genau das, was ich will. Also, irgendwelche Ideen wie könnte ich das erreichen?
Sie haben '' GADBannerViewDelegate'' zu Ihrem 'ViewController' hinzugefügt, richtig? Zum Beispiel '@interface ViewController()'. –
@Daniel Ja, ich habe meinen View-Controller zur Implementierung des Protokolls erklärt und erhalte keine Warnungen. – lawicko