我有一个带有两个ViewControllers(A和B)的TabBar控制器,并希望更改两个Tab Bar项的字体大小。当加载第一个选项卡A ViewController时,我可以使用[self tabBarItem] setTitleTextAttribute更改选项卡项字体大小。
但是,如何从A引用ViewController B的标签栏项,以便我也可以更改字体?
提前致谢!
答案 0 :(得分:2)
您可以通过self.tabbarController.viewControllers引用其他viewController
答案 1 :(得分:0)
您可以为UITabBar添加单例:Shared Instances并获取单个引用,或者您可以创建一个具有两个UIViewControllers及其随附的UITabBars的类,并将它们作为类变量调用。我真的不喜欢单身人士,但它归结为你的应用程序的偏好和数据模型。
答案 2 :(得分:0)
像@andershqst所说self.tabbarController.viewControllers
。我为我的标签保留了一个枚举。
typedef enum SICOTabIndexes {
kSICOTabIndexHome,
kSICOTabIndexSaved,
kSICOTabIndexCamera,
kSICOTabIndexList,
kSICOTabIndexSettings
} SICOTabIndexes;
然后,我可以使用controller.tabBarController.viewControllers[kSICOTabIndexHome]
来获取特定的视图控制器。
UIViewController *homeController = controller.tabBarController.viewControllers[kSICOTabIndexHome]
此时,使用homeController.tabBarItem
进行所需的更改。