0

iOS8.1(xcode 6.1) 我使用下面的方法来改变状态栏文本的颜色。

[self setNeedsStatusBarAppearanceUpdate];

-(UIStatusBarStyle)preferredStatusBarStyle{ 
return UIStatusBarStyleLightContent; }

未调用链接preferredStatusBarStyle

但这对我不起作用。任何人都知道如何更改与 uinavigationcontroller 相关的状态栏颜色。

4

2 回答 2

1
  1. UIViewControllerBasedStatusBarAppearance在 info.plist 中设置为 YES
  2. - (UIViewController *)childViewControllerForStatusBarStyle在您的导航控制器中覆盖。归还你的孩子VC
  3. 覆盖preferredStatusBarStyle或需要的东西。

代码:

- (UIStatusBarStyle)preferredStatusBarStyle{
    return self.test?UIStatusBarStyleLightContent:UIStatusBarStyleDefault;
}

- (IBAction)test:(id)sender {
    self.test = !self.test;
    [self setNeedsStatusBarAppearanceUpdate];
}

让我知道它是否不起作用。

于 2015-03-18T10:37:17.203 回答
0

您可以通过将包含您的设置的 NSDictionary 分配给 titleTextAttributes 属性来自定义 UINavigationControllers 上的标题文本样式。

NSDictionary *titleTextAttributes = [NSDictionary dictionaryWithObjectsAndKeys:
                            [UIColor whiteColor], NSForegroundColorAttributeName, nil];

[[UINavigationBar appearance] setTitleTextAttributes:titleTextAttributes];

更多堆栈溢出讨论在这里,苹果参考在这里

于 2016-05-13T00:19:03.277 回答