Tôi đã triển khai AdMob & mọi thứ dường như hoạt động,
Nhưng tôi tự hỏi, làm thế nào tôi có thể đặt biểu ngữ trong tất cả các bộ điều khiển chế độ xem của mình?
Hiện tại, tôi chỉ có biểu ngữ trên RootViewController.
Tôi có tổng cộng 4 bộ điều khiển chế độ xem.
Cảm ơn.AdMob trong tất cả các trình điều khiển chế độ xem của tôi?
Trả lời
Tôi không biết cách hoạt động của adMob nhưng giống như mọi thứ khác bạn có thể tạo BaseViewController
, trong đó bạn có thể thêm adMob của mình (trong phương thức viewDidLoad
) và sau đó tất cả các viewControllers khác có thể subClass BaseViewController
này. chỉ cần gọi [super viewDidLoad];
trong viewDidLoad
phương pháp viewControllers của bạn và bạn sẽ có nó ...
hy vọng này sắp xếp vấn đề của bạn ... :)
Những gì bạn muốn ở đây là một singleton GADBannerView
các loại. Bạn có lẽ có thể tạo ra một lớp bọc để hoạt động như một singleton cho adview của bạn, vì vậy cái gì đó như:
@interface GADMasterViewController : UIViewController {
GADBannerView *adBanner_;
BOOL didCloseWebsiteView_;
BOOL isLoaded_;
id currentDelegate_;
}
Và chỉ cần đảm bảo rằng GADMasterViewController
luôn trả về một singleton:
+(GADMasterViewController *)singleton {
static dispatch_once_t pred;
static GADMasterViewController *shared;
// Will only be run once, the first time this is called
dispatch_once(&pred, ^{
shared = [[GADMasterViewController alloc] init];
});
return shared;
}
Có một phương pháp mà resets bộ điều khiển chế độ xem hiện tại đang giữ trên adView:
-(void)resetAdView:(UIViewController *)rootViewController {
// Always keep track of currentDelegate for notification forwarding
currentDelegate_ = rootViewController;
// Ad already requested, simply add it into the view
if (isLoaded_) {
[rootViewController.view addSubview:adBanner_];
} else {
adBanner_.delegate = self;
adBanner_.rootViewController = rootViewController;
adBanner_.adUnitID = kSampleAdUnitID;
GADRequest *request = [GADRequest request];
[adBanner_ loadRequest:request];
[rootViewController.view addSubview:adBanner_];
isLoaded_ = YES;
}
}
Sau đó, hiển thị quảng cáo của bạn chỉ là vấn đề:
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
shared = [GADMasterViewController singleton];
[shared resetAdView:self];
}
Bạn có thể cần phải thiết lập đại biểu để chuyển tiếp thông báo vì AdMob SDK không hoạt động tốt với đại biểu thay đổi trên đó khi đang yêu cầu.
Bạn có thể tìm bài đăng trên blog về số này here.
Cảm ơn RajPara, tôi đã cố gắng theo dõi bài đăng này vào ngày thứ năm nhưng "tôi bị lạc" và không thành công để làm điều đó: \ ... mới trong tất cả những thứ này –
Bạn có thể cung cấp thêm một số chi tiết về nơi bạn bị lạc không? Nếu bạn có câu hỏi cụ thể, chắc chắn có thể cố gắng giúp bạn với họ – RajPara
Cảm ơn Ankit, Vì vậy, hãy để tôi hiểu ... Nếu tôi có điều này trong viewDidLoad của RootViewController: CGRect khung = CGRectMake (0.0, self.view.frame.size.height, GAD_SIZE_320x50.width , GAD_SIZE_320x50.height); self.adBanner = [[GADBannerView alloc] initWithFrame: frame]; Vì vậy, làm thế nào để tôi viết những gì bạn đã nói trong mọi viewDidLoad cho mỗi VC? Xin lỗi, nó chỉ là tôi mới trong tất cả các công cụ này ... –
everyViewController sẽ phân lớp rootViewController và sau đó chỉ cần gọi [super viewDidLoad]; trong các phương thức viewDidLoad của viewControllers của bạn và bạn sẽ có nó ... –