模态视图的 iOS7 状态栏字体颜色
Posted
技术标签:
【中文标题】模态视图的 iOS7 状态栏字体颜色【英文标题】:iOS7 Status Bar Font Color for Modal View 【发布时间】:2014-02-04 22:56:25 【问题描述】:我正在尝试将我的一个模态视图中状态栏的字体颜色更改为白色。其他视图在应用委托中设置为白色。
我已尝试在 ViewController 中类似问题的答案中找到以下代码。
- (UIStatusBarStyle)preferredStatusBarStyle
return UIStatusBarStyleLightContent;
但这不起作用,因为字体仍然显示为黑色。
ios 领域的新手,如有任何建议,请提供帮助。
【问题讨论】:
How to change Status Bar text color in iOS 7的可能重复 【参考方案1】:您需要结合使用当前代码并将 Info.plist 中的 View controller-based status bar appearance
键设置为 YES。
不过,这里缺少的一块拼图是,您还需要告诉 iOS 您想要更新状态栏:
- (void)setNeedsStatusBarAppearanceUpdate;
它是 UIViewController 上的一个方法。像这样在viewDidLoad
中调用它:
- (void)viewDidLoad
[self setNeedsStatusBarAppearanceUpdate];
...
请注意,它仅适用于 iOS 7,并在 iOS 6 及更低版本上引发异常,因此在我的所有项目中,我都有这样的 #define
:
#define kIs7 ([[[UIDevice currentDevice] systemVersion] compare:@"7.0" options:NSNumericSearch] != NSOrderedAscending)
那么在 iOS 6 及更低版本上不运行仅限 iOS 7 的方法真的很简单:
if (kIs7) [self setNeedsStatusBarAppearanceUpdate];
【讨论】:
谢谢我错过了 plist 信息。我已经将代码输入到我的视图 controller.m 文件中,但是....仍然是黑色的。我的视图在故事板中,我的自定义类是否必须是视图控制器的名称?如果是,我会尝试填写它,但我认为它无法识别该文件,因为它不会自动填写名称。 我明白了!所以实际上一切都可以在 plist 中解决。 View Controller-based status 实际上必须设置为“NO”,并且需要添加另一个名为“Status bar style”的键,然后设置为不透明黑色。这会将所有视图控制器设置为始终为白色。【参考方案2】:这就是您将状态栏颜色更改为白色的方式。如果它不起作用,那么您可能没有在 Info.plist
中启用基于视图控制器的状态栏外观。
确保添加以下键,并将其值设置为YES
View controller-based status bar appearance
【讨论】:
以上是关于模态视图的 iOS7 状态栏字体颜色的主要内容,如果未能解决你的问题,请参考以下文章