2

我正在将 viewController 添加到 TabBarController。当我从自定义类和 Nib 添加 ViewController 时,它的图标不会显示在 tabBar 中。

如果我这样初始化,图标不会出现。

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 加载,如何获取要显示的图标?

4

2 回答 2

1

您可以在自定义视图控制器的方法中添加对tabBarItem.imagesetter的调用viewDidLoad

@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];
}
于 2009-08-25T18:59:47.383 回答
0

为什么将 [NSBundle mainbundle] 传递给 FlashCardViewController init?通常你只需传入 nil - 根据你的工作示例......

于 2009-08-25T20:43:16.410 回答