2017-05-09 6 views
1

Meine admob Interstitial-Anzeige wird nicht angezeigt, wenn auf die Schaltfläche adText geklickt wird. Ich möchte, dass die Interstitial-Anzeige geschaltet wird und meine Funktion text() ausgeführt wird. Ich möchte das gleiche passieren, wenn meine AdCall-Taste gedrückt wird, aber nachdem die Interstitial-Anzeige, um meine call() -Funktion ausgeführt wird.Warum wird die Admob-Interstitial-Anzeige nicht auf iOS geschaltet?

+0

Ich glaube nicht, dass Sie das tun können. Funktioniert die Übergabe von 'text()' als Eigenschaft auf ViewController init oder die Verwendung von delegate löst Ihr Problem? – Valdmer

Antwort

1

Wie ich Sie richtig verstehe, möchten Sie nur das tatsächliche Verhalten einer Schaltfläche aufrufen, nachdem die Anzeige präsentiert und abgewiesen wurde. In diesem Fall speichern Sie einfach den Anfragetyp, präsentieren Sie die Anzeige, schließen Sie die Anzeige, laden Sie das Interstitial neu und rufen Sie die Anfrage des gespeicherten Anforderungstyps auf.

Zunächst definieren die Typen:

enum RequestType { 
    case call 
    case text 
} 

Zweitens aktualisieren Sie Ihre View-Controller:

var requestType: RequestType? 

@IBAction func adText(_ sender: Any) { 
    requestType = .text 
    presentInterstitialAd() 
} 

@IBAction func adCall(_ sender: Any) { 
    requestType = .call 
    presentInterstitialAd() 
} 

func presentInterstitialAd() { 
    if self.interstitialAd.isReady { 
    self.interstitialAd.present(fromRootViewController: self) 
    } 
} 

func interstitialDidDismissScreen(_ ad: GADInterstitial) { 
    interstitialAd = reloadInterstitialAd() 
    invokeRequest() 
} 

func invokeRequest() { 
    guard let requestType = requestType else { 
    fatalError("No request type specified!") 
    } 
    switch requestType { 
    case .call: call() 
    case .text: text() 
    } 
} 

func call() { 
    // your code 
} 

func text() { 
    // your code 
} 
Verwandte Themen