添加Tabbar控制器图标IPhone

问题描述:

我将一个viewController添加到TabBarController。当我从自定义类和Nib添加ViewController时,它的图标不会显示在tabBar中。添加Tabbar控制器图标IPhone

如果我像这样初始化图标不显示。

viewController = [[FlashCardViewController alloc] initWithNibName:@"FlashCardViewController" bundle:[NSBundle mainBundle]]; 

但创建一个通用的viewController的作品。

viewController = [[UIViewController alloc] initWithNibName:nil bundle:nil]; 

这里我们添加图像和标题。

viewController.title = @"Quiz"; 
viewController.tabBarItem.image = [UIImage imageNamed:@"magnifying-glass.png"]; 

如何从NIB加载显示图标?

可以在呼叫添加到自定义视图控制器的viewDidLoad方法里面tabBarItem.image二传手:

@implementation FlashCardViewController 
//... 
- (void)viewDidLoad { 
    [super viewDidLoad]; 

    self.tabBarItem.image = [UIImage imageNamed:@"magnifying-glass.png"]; 
} 
//... 
@end

编辑:好了,没有工作。尝试:

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    UIImage *image = [UIImage imageNamed:@"magnifying-glass.png"]; 
    self.tabBarItem = [[[UITabBarItem alloc] initWithTitle:@"string" 
                image:image 
                 tag:0] autorelease]; 
}
+0

我确信你的建议可行,但仍然没有图标。任何其他想法蒂姆? – Bryan 2009-08-25 19:59:29

+0

也许自己初始化整个标签栏项目?看到上面编辑的代码。 – Tim 2009-08-25 23:27:58

+0

谢谢。我在另一个地方覆盖了图像和标题。这实际上有效!这里只有一个问题,直到你点击标签来加载视图,tabBarItem没有图标或标签。有任何想法吗? – Bryan 2009-08-26 00:01:36

为什么你在[一个NSBundle mainbundle]传递给FlashCardViewController初始化?通常你只是通过零 - 根据你的工作示例...

+0

我认为这可能是一个问题,我把它切换到零,但没有区别,所以我坚持我以前的东西。我自己一直在加载FlashCardViewController - 而不是TabBarController - 并且效果很好。 我不知道为什么我通过NSBundle mainbubdle。这是什么规定? – Bryan 2009-08-25 20:53:34