2016-12-17 110 views
0

我正在使用objective-c在Xcode中開發應用程序。我的問題是,我試圖使用ToolBar在我的UITableViewController中顯示admob廣告,但此欄沒有顯示任何內容。我在網上發現了很多關於如何將這個ToolBar放在UITableViewController中的反應,但是對於我的情況並沒有顯示任何東西。我知道我的Xcode水平很低,但我每天都在努力提高。工具欄中的AdMob 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 

工具欄沒有顯示任何內容:

enter image description here

什麼可能是錯誤的? 我需要你的幫助!比你非常感謝你的迴應!

回答

0

您是否有任何理由使用UIToolBar來展示此廣告?

我會建議,而不是使用UITableViewController,使用UIViewController並在那裏爲UITableView做一個屬性。

一旦你這樣做,你可以設置像你這樣的約束:

=====

頂部

的tableview

廣告視圖(設定高度)

底部

======

它是你可以把任何其他屏幕上,而不僅僅是實現代碼如下:)

我希望幫助使用一個UIViewController有一個表視圖的好處!如果您需要更多關於從哪裏開始的信息,請隨時回覆!

相關問題