【问题标题】:Switch between UIStatusBar color (black/white) in UINavigationController based app在基于 UINavigationController 的应用程序中的 UIStatusBar 颜色(黑/白)之间切换
【发布时间】:2015-06-07 00:45:25
【问题描述】:

在我的应用程序中,我使用多种颜色(基于主题)作为 UINavigationBar 的色调,用于一些浅色和一些深色。在 iOS7 及更高版本中,状态栏颜色也会发生变化。

对于浅色,使用默认状态栏文本颜色(黑色)很好,但对于深色,我们需要浅色(白色)。

我已经尝试了许多基于不同答案的方法,这样做。以下是那些:
1.View controller-based status bar appearance,但不适用于基于UINavigationControler的应用程序
2.Setting self.navigationController.navigationBar.barStyle = UIBarStyleBlack;将状态栏文字设置为白色,但设置为白色后不会变回黑色

它将如何运作?

【问题讨论】:

    标签: ios objective-c uinavigationcontroller uistatusbar


    【解决方案1】:

    要更改特定页面的颜色,您需要在整个应用程序范围内进行更改。当然,您可以在离开此页面后重新更新。

    - (void) viewWillAppear:(BOOL)animated{
        [super viewWillAppear:animated];
    
        // Do any additional setup after loading the view.
        if ([tintColor isEqual:[UIColor blackColor]])
            [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault animated:YES];
        else
            [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];
    }
    
    - (void) viewWillDisappear:(BOOL)animated {
        [super viewWillDisappear:YES];
    
        //set it back to default
        [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];
    }
    

    【讨论】:

      猜你喜欢
      • 2019-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-17
      相关资源
      最近更新 更多