■ クラス一覧
FooterView.h
FooterView.m
FooterView.xib
MainViewController.h
MainViewController.m
■ FooterView.xib 詳細
File's OwnerのCustom Class ⇒ FooterView
以下コンポーネントの配置構成
UIView
└ GADBannerView(UIView)
記載しているコードは必要最小限の箇所を抜粋しました。
xibを利用してカスタムUIViewを作成し、各viewControllerで使いまわすのを目的としています。
FooterViewには、AdMobの広告を表示するためのGADBannerViewを配置しoutlet接続しています。
(GADBannerViewは、AdMobのSDKフレームワークのクラスです。)
MainViewController.mでFooterViewをイニシャライズし、GADBannerViewのプロパティにアクセスすると下記エラーがでました。
-[UIView setAdUnitID:]: unrecognized selector sent to instance 0x7ffc8966a5f0
同様にヘッダー等(広告表示は無し)も作成したのですが、そちらは問題なくアクセスできています。
GADBannerViewがインスタン化されていない?
すごく基本的なところが抜けているんだと思うのですが、解決できずに困っています。
何か助言をいただければうれしいです。
よろしくお願いします。
objective
1FooterView.h 2 3@import GoogleMobileAds; 4 5@protocol FooterViewDelegate <NSObject> 6@end 7 8@interface FooterView : UIView 9// FooterView.xibのGADBannerViewのoutlet 10@property (weak, nonatomic) IBOutlet GADBannerView *bannerView; 11@property (weak, nonatomic) id<FooterViewDelegate> delegate; 12@end
objective
1#import "FooterView.h" 2 3@implementation FooterView 4 5- (id)initWithFrame:(CGRect)frame { 6 self = [super initWithFrame:frame]; 7 if (self) { 8 UINib *nib = [UINib nibWithNibName:NSStringFromClass([self class]) bundle:nil]; 9 [self addSubview:[nib instantiateWithOwner:self options:nil][0]]; 10 } 11 return self; 12} 13@end
objective
1MainViewController.m 2 3#import "FooterView.h" 4 5@interface AppContentsViewController () 6@end 7 8- (void)viewWillAppear:(BOOL)animated { 9 [super viewWillAppear:animated]; 10 11 self.footerView = [[FooterView alloc] init]; 12 self.footerView.frame = CGRectMake(0, 0, 320, 50); 13 14 self.footerView.bannerView.adUnitID = @"*****"; // ここでエラー 15 self.footerView.bannerView.rootViewController = self; 16 [self.footerView.bannerView loadRequest:[GADRequest request]]; 17 18 [self.view addSubview:self.footerView]; 19}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。