【发布时间】:2014-02-05 00:56:28
【问题描述】:
更新已答复。由我。
目前我的UISegmentedControl的文字颜色变化有问题;它需要在第一次加载时使用UIControlStateSelected 进行更改。代码有效,但只是有条件的。当您使用导航栏上的分段控件访问页面时,它可以工作,点击后退按钮,然后再次访问该页面。我假设这里的继承存在问题。让我解释一下..
分段控件的位置位于我的导航栏顶部。
继承了包含 SegmentedControl 的 ViewController: TabBarViewController(由 AppDelegate 管理)-->导航控制器-->ViewController('inviteSegBar' 所在)
这是 AppDelegate.m 中的代码:
[[UINavigationBar appearance] setBarTintColor:[UIColor colorWithHexString:@"#669900"]];//this one sets it green.
[[UINavigationBar appearance] setBackgroundColor:[UIColor whiteColor]];
这是 VC 的 viewDidLoad: 代码,其中包含“inviteSegBar”,有问题的 UISegmentedControl:
- (void)viewDidLoad
{
[super viewDidLoad];
//CUSTOM APPEARANCE <below>
self.navigationController.navigationBar.barTintColor = [UIColor whiteColor];
self.navigationController.navigationBar.tintColor = [UIColor colorWithHexString:@"#669900"];
inviteSegBar.tintColor = [UIColor colorWithHexString:@"#333333"];
[[UISegmentedControl appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor colorWithHexString:@"#669900"]} forState:UIControlStateSelected];
}
就像我说的最后一行有效,但只有当您重新访问该页面时。为什么会这样?
PS这是同一个问题,在列出任何答案之前我已经尝试过这段代码。
【问题讨论】:
标签: ios objective-c uisegmentedcontrol uicolor