UITabBarController选项卡图像和标题在我点击它们之前不会设置

时间:2014-09-28 10:14:26

标签: ios uikit uitabbarcontroller

我已在其title方法中设置了每个UIViewControllers的属性imageselected-imageviewDidLoad:。这些视图控制器位于UITabBarController中,根据提供的文档,如果设置这三个属性,UITabBarController将自动显示它们。

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

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

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

2 个答案:

答案 0 :(得分:8)

在第一次实际需要加载视图之前,不会调用

viewDidLoad,在这种情况下,当您切换到ViewController的选项卡时。

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

答案 1 :(得分:2)

如果您使用的是故事板,则应使用awakeFromNib。像这样:

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