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

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

08.05.2013, 15:31. Просмотров 818. Ответов 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.
http://www.cyberforum.ru/ios-dev/thread935954.html
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
Я подобрал для вас темы с готовыми решениями и ответами на вопрос AdBannerView на все Views (Программирование iOS):

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

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

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

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

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

4
mobidevelop
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
13.05.2013, 14:16 #2
Я бы на window его положил... Если идея по каким-то причинам не прокатывает, вечером смогу проект глянуть.
0
Монфрид
1208 / 1018 / 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
Монфрид
1208 / 1018 / 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
Привет! Вот еще темы с решениями:

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

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

Views и VB6 не контачат
Причем на 50% машин. Странно, ведъ все остальное проходит нормально. Может кто...

Python Django.Views
Всех с наступившим! Товарищи, у меня появилось такое чувство, что я делаю явно...


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

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

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