以下のようにボタンが1つあります。
ボタンをタップするとダイアログでランダムに計算問題が出され、正解すると
インタースティシャル広告へ移行し、画面遷移を行うようにコードを書きたいです。
ダイアログ表示コードとインタースティシャル広告表示コードをどのように組み合わせれば良いのかで悩んでいます。
swift
1import UIKit 2import GoogleMobileAds 3 4class ViewController: UIViewController, GADInterstitialDelegate { 5 6 var interstitial: GADInterstitial! 7 8 // 足し算に使う変数を用意します 9 10 var correct = 0 11 let a = Int.random(in: 1...20) 12 let b = Int.random(in: 1...20) 13 14 @IBOutlet var test: UIButton! 15 16 17 override func viewDidLoad() { 18 super.viewDidLoad() 19 // Do any additional setup after loading the view. 20 interstitial = GADInterstitial(adUnitID: "ca-app-pub-3940256099942544/4411468910") 21 let request = GADRequest() 22 interstitial.load(request) 23 self.interstitial.delegate = self 24 } 25 26 @IBAction func test(_ sender: Any) { 27 //広告 28 if interstitial.isReady { 29 interstitial.present(fromRootViewController: self) 30 31 _ = "(a) + (b) = ?" 32 let alert = UIAlertController(title: "あなたは大人ですか?", message: "(a) + (b) = ?", preferredStyle: .alert) 33 34 35 alert.addTextField(configurationHandler: { textField in 36 37 textField.placeholder = "答えを入力してください。" 38 }) 39 40 alert.addAction(UIAlertAction(title: "解答する", style: .default) { _ in 41 if let textField = alert.textFields?.first { 42 if let answer = textField.text { 43 } 44 // 整数が入力されているかチェックします 45 guard let answer = Int(textField.text!) else { 46 return 47 } 48 49 if answer == self.correct { 50 //広告 51 self.interstitial = createAndLoadInterstitial() 52 } 53 func createAndLoadInterstitial() -> GADInterstitial { 54 let interstitial = GADInterstitial(adUnitID: "ca-app-pub-2929539065928288/6968941950") 55 interstitial.delegate = self 56 interstitial.load(GADRequest()) 57 return interstitial 58 } 59 } 60 }) 61 62 let cancel = UIAlertAction(title: "キャンセル", style: .cancel, handler: { (action) -> Void in 63 print("Cancel button tapped") 64 }) 65 66 67 alert.addAction(cancel); 68 69 self.present(alert, animated: true, completion: nil) 70 71 } 72 }} 73
まずインタースティシャル広告が表示されてしまいます。
よろしくお願いいたします。
あなたの回答
tips
プレビュー