Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование iOS/iPhone
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Монфрид
1211 / 1021 / 293
Регистрация: 07.03.2012
Сообщений: 3,243
Завершенные тесты: 2
1

AdBannerView на все Views

08.05.2013, 15:31. Просмотров 831. Ответов 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
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.05.2013, 15:31
Ответы с готовыми решениями:

Два views для обработки поворота
Добрый день! Решил потренировать вариант обработки поворота устройства,...

Views
Всем привет Вобщем вопрос таков можна ли сделать так чтоб на вю не...

Framesets Vs Views
подскажите где ошибка делаю отображенние при помощи Frameset у меня...

Partitioned Views
Подскажите, сложилась такая ситуация: решил сделать Partitioned View. Была у...

FP8 и views
Доброго времени суток.. Кто нить уже пользовал fp8 в плане: NIFNSFEnable=1...

4
mobidevelop
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
13.05.2013, 14:16 2
Я бы на window его положил... Если идея по каким-то причинам не прокатывает, вечером смогу проект глянуть.
0
Монфрид
1211 / 1021 / 293
Регистрация: 07.03.2012
Сообщений: 3,243
Завершенные тесты: 2
13.05.2013, 15:26  [ТС] 3
mobidevelop, спасибо, примерно такое решение и сделал. В appDelegate добавил в rootViewController

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

Добавлено через 3 часа 24 минуты
Во. Заработало.
https://itunesconnect.apple.com -> Manage Your Apps -> <Нужное_приложение> -> Manage iAd Network.
Ну а там, вроде, все понятно должно быть.
1
Монфрид
1211 / 1021 / 293
Регистрация: 07.03.2012
Сообщений: 3,243
Завершенные тесты: 2
14.05.2013, 09:06  [ТС] 5
спасибо за помощь
0
14.05.2013, 09:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.05.2013, 09:06

Shared Views
есть две, абсолютно одинаковые модели Expense и ExpenseCash (class...

Ссылка на views
есть сайт, в главном меню есть страны(со ссылками), но само название блока...

Не выводит Views
Здравствуйте уважаемые форумчане. Кое в чем разобрался, но до конца...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru