【问题标题】:UITabBarController tab images and titles are not set until I tap themUITabBarController 选项卡图像和标题在我点击它们之前不会设置
【发布时间】:2014-11-22 21:33:53
【问题描述】:

我在 viewDidLoad: 方法中设置了我的每个 UIViewControllers 的属性 titleimageselected-image。这些 View Controller 都在一个 UITabBarController 中,根据提供的文档,如果你设置了这三个属性,UITabBarController 会自动显示出来。

[self setTitle: @"title"];
[self.tabBarItem setImage: [UIImage imageNamed:@"image.png"]];
[self.tabBarItem setSelectedImage:[UIImage imageNamed:@"image-selected.png"]];

但问题是视图控制器在用户点击 UITabBar 中的相应选项卡之前不会被实例化,所以在没有按下选项卡的那一刻之前,图像和标题都不会显示。

是否有任何干净和 OOP 方法可以使 UITabBarController 刷新并从其视图控制器中提取数据?如果您必须手动告诉 UITabBarController 哪个是哪个,那么拥有 titleimageselected-image 属性有什么意义?

【问题讨论】:

  • 我刚刚实现了最粗略的不干净的解决方案:我将 UITabBarController 子类化并使其遍历其所有视图控制器,然后返回到第一个。请帮我找到另一种方法!

标签: ios uikit uitabbarcontroller


【解决方案1】:

viewDidLoad 直到第一次真正需要加载视图时才会调用,在这种情况下是当您切换到 ViewController 的选项卡时。

尝试在 ViewController 的指定初始化程序中设置这些属性。

【讨论】:

  • 太棒了。谢谢。
【解决方案2】:

如果您使用情节提要,则应改用 awakeFromNib。像这样:

- (void)awakeFromNib {
    [self setTitle:@"title"];
    [self.tabBarItem setImage:[UIImage imageNamed:@"image.png"]];
    [self.tabBarItem setSelectedImage:[UIImage imageNamed:@"image-selected.png"]];
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-26
    • 1970-01-01
    • 2012-08-24
    • 1970-01-01
    • 1970-01-01
    • 2021-11-23
    相关资源
    最近更新 更多