【问题标题】:Adding Tabbar Controller Icon IPhone添加标签栏控制器图标 iPhone
【发布时间】:2010-11-22 17:57:42
【问题描述】:

我正在将 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 加载,如何让图标显示?

【问题讨论】:

    标签: iphone cocoa-touch uitabbarcontroller icons nib


    【解决方案1】:

    您可以在自定义视图控制器的 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];
    }

    【讨论】:

    • 我确信您的建议会奏效,但仍然没有图标。蒂姆还有其他想法吗?
    • 也许自己初始化整个标签栏项目?请参阅上面的编辑代码。
    • 谢谢。我在另一个地方覆盖了图像和标题。这确实有效!这里只有一个问题是,在您单击选项卡加载视图之前,tabBarItem 没有图标或标签。有什么想法吗?
    • 将代码从viewDidLoad移动到initWithNibName:bundle:?
    • 啊!我会试试的。谢谢。
    【解决方案2】:

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

    【讨论】:

    • 我认为这可能是一个问题,我将其切换为 nil,但没有任何区别,所以我坚持使用以前的方法。我一直在自己加载 FlashCardViewController - 而不是 TabBarController - 它工作得很好。我不确定为什么要通过 NSBundle mainbubdle。这说明了什么?
    猜你喜欢
    • 2011-04-02
    • 2014-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-28
    • 1970-01-01
    • 2018-10-12
    • 2011-12-11
    相关资源
    最近更新 更多