質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

AdMob

AdMobは、事前に指定した条件に従ってアプリに広告を表示するGoogleのサービス。開発者の向けのサービスで、広告を掲載することにより、収益を得ることが可能です。その他、見た目や雰囲気などアプリに合う広告に変更したり、広告表示の場所を指定することもできます。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Q&A

0回答

723閲覧

iosアプリ開発:画面遷移後(または遷移前)にインタースティシャル広告を表示させたい

massanmesu

総合スコア36

Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

AdMob

AdMobは、事前に指定した条件に従ってアプリに広告を表示するGoogleのサービス。開発者の向けのサービスで、広告を掲載することにより、収益を得ることが可能です。その他、見た目や雰囲気などアプリに合う広告に変更したり、広告表示の場所を指定することもできます。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

0グッド

0クリップ

投稿2021/06/09 07:55

現状

保存するボタンを押すと入力したデータのモデルがRealmに保存され、Tableviewが表示されているVIewControllerへ戻ってくる。
イメージ説明
イメージ説明

やりたいこと

戻ってくるタイミング(または保存ボタンを押したタイミング)でインタースティシャル広告を表示させたい。

うまくいかないこと

公式のスタートガイドを元に広告を作成し表示する関数を定義したのですが、どのタイミングで遷移する関数presentAd()を呼べば表示されるのかがわかりません。。

class ItemTableViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, UISearchBarDelegate, GADFullScreenContentDelegate { ... var interstitial: GADInterstitialAd! override func viewDidLoad() { super.viewDidLoad() createInterstitial() ... } func createInterstitial(){ let request = GADRequest() GADInterstitialAd.load(withAdUnitID:"ca-app-pub-3940256099942544/4411468910", request: request) { [self] ad, error in if let error = error { print("Failed to load interstitial ad with error: (error.localizedDescription)") return } interstitial = ad interstitial.fullScreenContentDelegate = self } } func presentAd() { if interstitial != nil { interstitial.present(fromRootViewController: self) } else { print("Ad wasn't ready") } }

試したこと

戻ってきた時に実行される関数unwindToItemListで実行。Realmに保存し、通知処理をした後で呼び出しましたが表示されませんでした。

@IBAction func unwindToItemList(sender: UIStoryboardSegue) { if let sourceViewController = sender.source as? ItemEditPageViewController { // データモデル作成(省略) ... // Realm更新。 try! realm.write { realm.add(item, update: .modified) } // 通知登録 setNotification(date: item.date) } // 実行したが表示されない presentAd() }

viewWillAppearで呼び出しても表示されませんでした。

公式のサンプルではボタンアクションの処理内に書いているだけなので、もしかしたら複数の処理の中で実行してもうまく読み込めていないのではないかと思いました。

公式サンプル

@IBAction func doSomething(_ sender: Any) { if interstitial != nil { interstitial.present(fromRootViewController: self) } else { print("Ad wasn't ready") } }

「俺だったらこうするよ」っていう方がいましたら、ご教授いただけたら嬉しいです。

補足

保存ボタンをタップしてテーブルビューに戻ってくる処理はUnwind Segueで実装しています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問