Ios 使用BannerViewController时没有UITableItem图像

Ios 使用BannerViewController时没有UITableItem图像,ios,xcode,ios6,iad,uitabbaritem,Ios,Xcode,Ios6,Iad,Uitabbaritem,我有一个针对ios 6的通用标签应用程序,有4个标签。几乎可以发布了,我开始研究支持IAD的最新和最好的方法。在看过苹果的iAdSuite演示项目后,似乎使用BannerViewController包装我的4个UIViewController是一个完美的解决方案 而且它在正确显示iAd方面非常有效 但是,由于更改了我的选项卡栏,因此不再显示图像/图标。我已经逐行查看了BannerViewController代码,但我看不到任何似乎覆盖图像设置的内容 我所做的改变是: 将BannerViewCon

我有一个针对ios 6的通用标签应用程序,有4个标签。几乎可以发布了,我开始研究支持IAD的最新和最好的方法。在看过苹果的iAdSuite演示项目后,似乎使用BannerViewController包装我的4个UIViewController是一个完美的解决方案

而且它在正确显示iAd方面非常有效

但是,由于更改了我的选项卡栏,因此不再显示图像/图标。我已经逐行查看了BannerViewController代码,但我看不到任何似乎覆盖图像设置的内容

我所做的改变是:

  • 将BannerViewController.h和.m添加到我的项目中
  • #在我的4个UIViewController中导入
  • 修改设置“我的选项卡视图”控制器的AppDelegate代码,使其发生更改:
  • 在我的4个视图控制器中,我在initWithNibName方法中都有以下代码(具有适当的标题和图像名称):

    - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
    {
        self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
        if (self) {
            self.title = NSLocalizedString(@"Library", @"Library");
            self.tabBarItem.image = [UIImage imageNamed:@"96-book"];
        }
        return self;
    }
    
    使用原始代码时,标题和图像按预期工作。使用修改后的代码,我得到了标题,但没有图像,只有一个黑色按钮。以前有人遇到过这种情况吗


    注意:我在苹果示例应用程序中尝试了这一点,但也无法在那里显示图像,示例应用程序的目标是iOS5,而我的应用程序的目标是iOS6。

    因此我最终找到了一个解决方案,多亏了这个有点相关的So问题

    我从视图控制器中删除了图像设置代码,而是在视图控制器分配给UITabBar之后,将以下行添加到AppDelegate中

    UITabBar *tabBar = self.tabBarController.tabBar;
    [[tabBar.items objectAtIndex:0] setImage:[UIImage imageNamed:@"253-person"]];
    [[tabBar.items objectAtIndex:1] setImage:[UIImage imageNamed:@"138-scales"]];
    [[tabBar.items objectAtIndex:2] setImage:[UIImage imageNamed:@"85-trophy"]];
    [[tabBar.items objectAtIndex:3] setImage:[UIImage imageNamed:@"96-book"]];
    

    现在我的标签栏图像又回来了!

    所以我终于找到了一个解决方案,多亏了这个有点相关的问题

    我从视图控制器中删除了图像设置代码,而是在视图控制器分配给UITabBar之后,将以下行添加到AppDelegate中

    UITabBar *tabBar = self.tabBarController.tabBar;
    [[tabBar.items objectAtIndex:0] setImage:[UIImage imageNamed:@"253-person"]];
    [[tabBar.items objectAtIndex:1] setImage:[UIImage imageNamed:@"138-scales"]];
    [[tabBar.items objectAtIndex:2] setImage:[UIImage imageNamed:@"85-trophy"]];
    [[tabBar.items objectAtIndex:3] setImage:[UIImage imageNamed:@"96-book"]];
    

    现在我的标签栏图像又回来了!

    我遇到了同样的问题。 原因是包装每个ViewController的BannerViewController没有通过tabBarItem的访问权限,因此UITabBarController找不到所需的图标

    正确的修复方法是将其添加到BannerViewController.m:

    - (UITabBarItem *)tabBarItem {
      return _contentController.tabBarItem; 
    }
    

    我也遇到了同样的问题。 原因是包装每个ViewController的BannerViewController没有通过tabBarItem的访问权限,因此UITabBarController找不到所需的图标

    正确的修复方法是将其添加到BannerViewController.m:

    - (UITabBarItem *)tabBarItem {
      return _contentController.tabBarItem; 
    }