提问人:Senthelazy 提问时间:3/5/2023 更新时间:3/5/2023 访问量:9
如何确保从其他 childviewcontroller 返回 UITabBarController 时 StateSelected 的 textcolor 始终保持相同的颜色?
How can we ensure that the textcolor always remain the same color for StateSelected when back to UITabBarController from other childviewcontroller?
问:
我有一个带有五个子视图控制器的 UITabBarController,即 firstVC、secondVC 等。未选定项的文本颜色设置为灰色,所选项的文本颜色设置为橙色。一切正常,除非应用从 firstVC、secondVC 等导航到子视图控制器,然后导航回 UITabBarController。此时,所有选定的项目颜色在单击时将重置为蓝色,这是默认颜色。
+(void)initialize {
NSMutableDictionary *dicNormal = [NSMutableDictionary dictionary];
dicNormal[NSFontAttributeName] = [UIFont systemFontOfSize:12];
dicNormal[NSForegroundColorAttributeName] =DES_COLOR;
NSMutableDictionary *dicSelected = [NSMutableDictionary dictionary];
dicSelected[NSFontAttributeName] = [UIFont systemFontOfSize:12];
dicSelected[NSForegroundColorAttributeName]=ORANGE_COLOR;
UITabBarItem *item = [UITabBarItem appearance];
[item setTitleTextAttributes:dicNormal forState:UIControlStateNormal];
[item setTitleTextAttributes:dicSelected forState:UIControlStateSelected];
UITabBar *bar = [UITabBar appearance];
[bar setBackgroundColor:WHITE_COLOR];
[bar setBackgroundImage:[[UIImage alloc]init]];
[bar setShadowImage:[[UIImage alloc]init]];
}
用于设置文本属性的代码位于 UITabBarController 中,并在 initialize 方法中执行。我尝试将相同的代码放在 UITabBarController 的每个子视图控制器的 viewWillAppear 方法中。但是,如果在推送到另一个视图控制器之前选择了子视图控制器,则文本颜色将保持为蓝色,而对于未选择的项目,文本颜色将更改为橙色,这是所需的颜色。
我的问题是:当从其他子视图控制器导航回 UITabBarController 时,我们如何确保 UIControlStateSelected 的文本颜色始终保持相同的颜色?提前致谢。
答: 暂无答案
评论