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

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

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

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

Xcode

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

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

1513閲覧

広告の表示など同じ処理をどのページにもする場合のコーディングのコツ

Robokun

総合スコア53

iOS

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

Xcode

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

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2016/10/26 01:56

###前提・実現したいこと
Swift3でiOS用のプログラムを作っています

スキルは入門書の広告の表示ができるようになった程度です。

広告の表示ができるようになると、その広告をすべてのページに表示したいと
思うようになりました。
それぞれの画面のViewControllerにコードをコピーして貼り付けたのですが
こういう同じ処理は何か別なセオリーがあるに違いない思い立ち質問させて頂きました。

ViewControllerの継承的なアプローチじゃないかというイメージはあるのですが
何か簡単なサンプルコードを探したのですがヒットせずでした。

参考までに広告だけを実装したViewControllerのコードを記入します

viewcontroller.swift

1import UIKit 2import GoogleMobileAds //広告用 3 4class ConfigViewController: UIViewController { 5 let AdMobID = "MY ID" 6 let TEST_ID = "ca-app-pub-3940256099942544/2934735716" 7 let AdMobTest:Bool = true //Testの時はTrueにする 8 9 override func viewDidLoad() { 10 super.viewDidLoad() 11 12 print("Google Mobile Ads SDK version: \(GADRequest.sdkVersion())") 13 14 var admobView = GADBannerView() 15 16 admobView = GADBannerView(adSize:kGADAdSizeBanner) 17 //広告の制約を設定 18 admobView.frame.origin = CGPoint(x:0, y:self.view.frame.size.height - admobView.frame.height) 19 admobView.frame.size = CGSize(width:self.view.frame.width, height:admobView.frame.height) 20 //admobView.addConstraints([NSLayoutConstraint(item:admobView ,attribute:NSLayoutAttribute.top,relatedBy: NSLayoutRelation.equal,toItem: self.view,attribute: NSLayoutAttribute.topMargin,multiplier: 1.0,constant: 5)]) 21 22 if AdMobTest { 23 admobView.adUnitID = TEST_ID 24 } 25 else{ 26 admobView.adUnitID = AdMobID 27 } 28 29 admobView.rootViewController = self 30 admobView.load(GADRequest()) 31 32 self.view.addSubview(admobView) 33 }

申し訳ありませんが、何かアドバイスいただければと思います

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

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

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

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

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

guest

回答1

0

ベストアンサー

AppDelegateのwindowに広告を貼り付けてやれば出っぱなしになります。

swift

1//self.view.addSubview(admobView) 2let app = UIApplication.sharedApplication().delegate as! AppDelegate 3app.window?.addSubview(admobView)

その他の方法としては、ContainerViewを使えば1画面内で複数のviewが扱えるのでそれを応用すれば可能です。

投稿2016/10/26 04:09

fromageblanc

総合スコア2724

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

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

Robokun

2016/10/26 11:15

ありがとうございます やっと解決しました。 AppDelegateのwindowのコードをどこに記入するのかで迷ってました。 シングルトンな物なので最初に起動した画面で入れれば良かったんですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問