Форум программистов, компьютерный форум CyberForum.ru

Программирование iOS/iPhone

Войти
Регистрация
Восстановить пароль
 
Монфрид
 Аватар для Монфрид
1188 / 998 / 153
Регистрация: 07.03.2012
Сообщений: 3,243
Завершенные тесты: 2
#1

AdBannerView на все Views - Программирование iOS/iPhone

08.05.2013, 15:31. Просмотров 760. Ответов 4

Хочу вставить баннер на большинство views. В основном используются TableView. Решил для баннера использовать TableHeader у TableView. Apple рекомендует в таких случаях не создавать баннеры для каждого окна, а использовать один (shared).
Создал такой класс:
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#import <Foundation/Foundation.h>
#import <iAd/iAd.h>@interface AdManager : NSObject <ADBannerViewDelegate>
@property (nonatomic, strong) ADBannerView *bannerView;
+ (AdManager *)sharedInstance;
 
#import "AdManager.h"
 
@implementation AdManager
@synthesize bannerView;
 
+ (AdManager *)sharedInstance
{
    static AdManager *sharedInstance = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        sharedInstance = [[AdManager alloc] init];
    });
    return sharedInstance;
}
 
-(instancetype)init
{
    if (self=[super init]) {
        bannerView = [[ADBannerView alloc] init];
        bannerView.delegate=self;
    }
    return self;
}
В AppDelegate создаю экземпляр этого класса. И в TableView's подписываюсь на notification которые идут от баннера.
И соответственно, при наступлении события гружу баннер в header.
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
-(void)viewWillAppear:(BOOL)animated
{
    if (self.appDelegate.bannerView.isBannerLoaded)
        [self bannerLoadedSuccess:nil];
    
    [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(bannerLoadedSuccess:) name:@"BannerLoaded" object:nil];
    [self.tableView reloadData];
    [super viewWillAppear:animated];
}
 
-(void)bannerLoadedSuccess:(NSNotification *)notification
{
    NSLog(@"notification! tbl1");
    self.tableView.tableHeaderView=self.appDelegate.bannerView;
}
 
-(void)viewWillDisappear:(BOOL)animated
{
    [[NSNotificationCenter defaultCenter]removeObserver:self];
    self.tableView.tableHeaderView=nil;
    [super viewWillDisappear:animated];
}
Для примера, создал TabBar c 2мя TableViewController'ами. На обоих tableView один и тот же код, который я привёл выше. Когда один tableView используется для баннера, то всё хорошо, как только использую два, ничего не работает.

Проект прилагаю ниже. Буду сильно благодарен за помощь.BannerOnAllViews.zip
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.05.2013, 15:31     AdBannerView на все Views
Посмотрите здесь:

Visual Basic Views и VB6 не контачат
Partitioned Views SQL Server
Не выводит Views PHP
Два views для обработки поворота
Tab Layout with Swipeable Views Android
Drupal Ссылка на views
Ruby on Rails Shared Views
Python Python Django.Views

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mobidevelop
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
13.05.2013, 14:16     AdBannerView на все Views #2
Я бы на window его положил... Если идея по каким-то причинам не прокатывает, вечером смогу проект глянуть.
Монфрид
 Аватар для Монфрид
1188 / 998 / 153
Регистрация: 07.03.2012
Сообщений: 3,243
Завершенные тесты: 2
13.05.2013, 15:26  [ТС]     AdBannerView на все Views #3
mobidevelop, спасибо, примерно такое решение и сделал. В appDelegate добавил в rootViewController

Добавлено через 1 минуту
mobidevelop, и скажите пожалуйста, первый раз будем выкладывать в аппСтор. Добавив эти баннеры, они сами будут брать контент для показа или же где то надо настроить что хотим показать?
mobidevelop
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
13.05.2013, 19:02     AdBannerView на все Views #4
В айтюнсконнекте надо галку поставить. В настройках версии приложения есть соответствующий пункт про рекламу. Причем, ее нельзя убрать/поставить если версия вышла в продажу - только для новой версии можно.
PS. Что-то у меня itunesconnect не открывается. Как только прорвусь подробнее опишу куда там кликать надо.

Добавлено через 3 часа 24 минуты
Во. Заработало.
https://itunesconnect.apple.com -> Manage Your Apps -> <Нужное_приложение> -> Manage iAd Network.
Ну а там, вроде, все понятно должно быть.
Монфрид
 Аватар для Монфрид
1188 / 998 / 153
Регистрация: 07.03.2012
Сообщений: 3,243
Завершенные тесты: 2
14.05.2013, 09:06  [ТС]     AdBannerView на все Views #5
спасибо за помощь
Yandex
Объявления
14.05.2013, 09:06     AdBannerView на все Views
Ответ Создать тему
Опции темы

Текущее время: 03:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru