我已在其title
方法中设置了每个UIViewControllers的属性image
,selected-image
和viewDidLoad:
。这些视图控制器位于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哪个属性,那么拥有title
,image
和selected-image
属性有什么意义呢?
答案 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"]];
}