【问题标题】:How to change Status Bar text color in iOS 8 embeded with UInavigationController?如何更改嵌入 UInavigationController 的 iOS 8 中的状态栏文本颜色?
【发布时间】:2015-03-05 12:34:23
【问题描述】:

iOS8.1(xcode 6.1) 我使用以下方法更改状态栏文本颜色。

[self setNeedsStatusBarAppearanceUpdate];

-(UIStatusBarStyle)preferredStatusBarStyle{ 
return UIStatusBarStyleLightContent; }

点击链接preferredStatusBarStyle isn't called

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

【问题讨论】:

    标签: objective-c ios8 uinavigationcontroller xcode6 ios7-statusbar


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

    代码:

    - (UIStatusBarStyle)preferredStatusBarStyle{
        return self.test?UIStatusBarStyleLightContent:UIStatusBarStyleDefault;
    }
    
    - (IBAction)test:(id)sender {
        self.test = !self.test;
        [self setNeedsStatusBarAppearanceUpdate];
    }
    

    如果它不起作用,请告诉我。

    【讨论】:

      【解决方案2】:

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

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

      更多堆栈溢出讨论here,以及苹果参考here

      【讨论】:

        猜你喜欢
        • 2013-07-14
        • 1970-01-01
        • 1970-01-01
        • 2019-01-13
        • 2020-02-01
        • 1970-01-01
        • 2019-10-27
        • 2017-03-23
        相关资源
        最近更新 更多