为不同的视图控制器设置状态栏颜色

Posted

技术标签:

【中文标题】为不同的视图控制器设置状态栏颜色【英文标题】:Set status bar colour for different view controllers 【发布时间】:2014-07-17 09:01:38 【问题描述】:

我有 6 个视图控制器。我想将我的第一个视图控制器的状态栏设置为黑色,然后将其他 5 个设置为白色。所有视图控制器都在一个推送堆栈中。

我已经尝试实现

[self setNeedsStatusBarAppearanceUpdate]

- (UIStatusBarStyle) preferredStatusBarStyle  
return UIStatusBarStyleLightContent; 

这似乎不起作用。我也尝试过使用应用程序 plist 属性。有什么想法吗?

【问题讨论】:

【参考方案1】:

如果您想更改状态栏的背景颜色,那么这是可能的。 您必须将UIWindow 's background colour 更改为您喜欢的颜色。尝试关注

例如

[[UIApplication sharedApplication].delegate window].backgroundColor = [UIColor orangeColor];

如果你想改变文字颜色,那就试试吧

 [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

【讨论】:

【参考方案2】:

您在 Plist 中错过了此设置

查看基于控制器的状态栏外观YES

【讨论】:

谢谢,我刚刚设置了,没有任何改变。【参考方案3】:

执行以下操作。

    查看基于控制器的状态栏外观 = 否在 plist 中。

    您要在 ViewwillApper 添加 白色 的 ViewController 添加

    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
    

    你想在ViewwillApper中黑色添加的ViewController

    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
    

【讨论】:

以上是关于为不同的视图控制器设置状态栏颜色的主要内容,如果未能解决你的问题,请参考以下文章

是否可以更改所有视图控制器的状态栏颜色?

如何为每个视图控制器分别更改状态栏颜色?

SwiftUI:为特定视图设置状态栏颜色

快速设置状态栏的自定义颜色?

无法为视图设置 iOS 状态栏颜色

iOS Swift TabBar状态栏文字颜色毛刺半白半黑