2016-12-17 5 views
0

Я разрабатываю приложение в Xcode с помощью объектива-c. Моя проблема в том, что я пытаюсь показать рекламу admob в моем UITableViewController с помощью ToolBar, но этот бар ничего не показывает. Я нашел много отзывов в Интернете о том, как поместить эту ToolBar в UITableViewController, но для моего случая ничего не отображается. Я знаю, что у меня низкий уровень Xcode, но я стараюсь каждый день улучшаться.Admob in ToolBar UITableViewController Xcode

Это мой кусок кода для AdMob:

[self.navigationController setToolbarHidden:NO]; 
    self.bannerView = [[GADBannerView alloc] initWithAdSize:kGADAdSizeBanner]; 
    self.bannerView.adUnitID = @"ca-app-pub-3940256099942544/2934735716"; //TEST!!!!! 
    self.bannerView.rootViewController = self; 
    [self.navigationController.toolbar addSubview:self.bannerView]; 

    GADRequest *request = [GADRequest request]; 
    request.testDevices = @[ @"",]; 
    [self.bannerView loadRequest:request]; 

Это мой MainTableViewController.h:

#import <UIKit/UIKit.h> 
#import "Restaurant.h" 

@import GoogleMobileAds; 
@interface MainTableViewController : UITableViewController 
@property (weak, nonatomic) IBOutlet UIBarButtonItem *barButton; 
@property (nonatomic, strong) NSArray<Restaurant *> *originData; 
@property (nonatomic, strong) NSMutableArray<Restaurant *> *filteredRest; 
@property (nonatomic, assign) Boolean isFiltered; 
@property (weak, nonatomic) IBOutlet UISearchBar *mySearchBar; 
@property (strong, nonatomic) IBOutlet UITableView *RestTableView; 
@property (weak, nonatomic) IBOutlet UIToolbar *admobToolBar; 
@property(weak, nonatomic) IBOutlet GADBannerView *bannerView; 

@end 

И это мой MainTableviewController.m:

#import "MainTableViewController.h" 
    #import "SWRevealViewController.h" 
    #import "RestTableViewCell.h" 
    #import "RestViewController.h" 
    #import "Restaurant.h" 

    @interface MainTableViewController() 
    @end 
    @implementation MainTableViewController 

    @synthesize mySearchBar, filteredRest, isFiltered, originData; 

    - (void)viewDidLoad { 
     [super viewDidLoad]; 

     _barButton.target = self.revealViewController; 
     _barButton.action = @selector(revealToggle:); 

     [self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer]; 

     self.RestTableView.tableFooterView = [[UIView alloc] init]; /*Esta linea hace que en la tabla solo aparezcan el numero de filas que tienes establecidas, es decir, que las vacias no aparezcan*/ 



     [self.navigationController setToolbarHidden:NO]; 
     self.bannerView = [[GADBannerView alloc] initWithAdSize:kGADAdSizeBanner]; 
     self.bannerView.adUnitID = @"ca-app-pub-3940256099942544/2934735716"; //TEST!!!!! 
     //self.bannerView.adUnitID = @"ca-app-pub-6926442062866079/7221537141"; 
     self.bannerView.rootViewController = self; 
     [self.navigationController.toolbar addSubview:self.bannerView]; 
     GADRequest *request = [GADRequest request]; 
     request.testDevices = @[ @"",]; 
     [self.bannerView loadRequest:request]; 

     originData = @[ 
      [[Restaurant alloc] init:@"80 Grados" descripiton:@"Malasaña" image:@"80_grados.jpg"], 
      [[Restaurant alloc] init:@"90 Grados" descripiton:@"Retiro" image:@"90_grados.jpg"], 
      [[Restaurant alloc] init:@"B&B Babel" descripiton:@"Barrio de Chueca" image:@"babel.jpg"], 
      [[Restaurant alloc] init:@"Babelia" descripiton:@"Barrio de Salamanca" image:@"babelia.jpg"], 
      [[Restaurant alloc] init:@"Bacira" descripiton:@"Chamberí" image:@"bacira.jpg"], 
      [[Restaurant alloc] init:@"Bar Galleta" descripiton:@"Malasaña" image:@"bar_galleta.jpg"], 
      [[Restaurant alloc] init:@"Bar Tomate" descripiton:@"Chamberí" image:@"bar_tomate.jpg"], 

     filteredRest = [NSMutableArray new]; 
     isFiltered = NO; 

    } 
    - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
    { 
     // Return the number of sections. 
     return 1; 
    } 

    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
    { 
     // Return the number of rows in the section. 
     if (isFiltered == YES) { 
      return filteredRest.count; 
     } else { 
      return originData.count; 
     } 
    } 


    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
    { 
     static NSString *CellIdentifier = @"TableCell"; 
     RestTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; 

     // Configure the cell... 
     if (isFiltered == YES) { 
      cell.TitleLabel.text = [filteredRest objectAtIndex:indexPath.row].title; 
      cell.DescriptionLabel.text = [filteredRest objectAtIndex:indexPath.row].desc; 
      cell.RestImage.image = [UIImage imageNamed:[filteredRest objectAtIndex:indexPath.row].image]; 
     } else { 
      cell.TitleLabel.text = [originData objectAtIndex:indexPath.row].title; 
      cell.DescriptionLabel.text = [originData objectAtIndex:indexPath.row].desc; 
      cell.RestImage.image = [UIImage imageNamed:[originData objectAtIndex:indexPath.row].image]; 
     } 

     cell.RestImage.layer.cornerRadius = 6; 
     cell.RestImage.clipsToBounds = YES; 
     cell.RestImage.layer.borderWidth = 1; 

     return cell; 
    } 


    -(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
    { 

     if ([[segue identifier] isEqualToString:@"ShowDetails"]){ 
      RestViewController *restviewcontroller = [segue destinationViewController]; 

      NSIndexPath *myIndexPath = [self.tableView indexPathForSelectedRow]; 

      if (isFiltered) { 
       restviewcontroller.DetailModal = filteredRest[myIndexPath.row]; 
      } else { 
       restviewcontroller.DetailModal = originData[myIndexPath.row]; 
      } 
     } 
    } 

@end 

ToolBar ничего не показывает:

enter image description here

Что может быть неправильным? Мне нужна ваша помощь! Чем вы очень за свои ответы!

ответ

0

Есть ли причина, по которой вы используете UIToolBar, чтобы показывать это объявление?

Я бы рекомендовал вместо использования UITableViewController использовать UIViewController и создать там свойство UITableView.

После того, как вы сделали, что вы можете настроить ваши ограничения следующим образом:

=====

верхней

TableView

вид объявления (набор высоты)

нижняя

======

Преимущество использования UIViewController с табличном в нем является то, что вы можете положить все еще на экране, а не только TableView :)

Я надеюсь, что помогает! Не стесняйтесь отвечать, если вам нужна дополнительная информация о том, с чего начать!