我在这里阅读了很多帖子并尝试了提到的大部分选项,但没有一个能解决我的问题。我有一个基于选项卡栏 Controller 的应用程序。每个选项卡都是一个顶部带有导航栏的 UIViewController。
将此代码添加到 AppDelegate 会给我一个带有白色文本的橙色导航栏,以及一个带有黑色文本的白色状态栏。
[[UINavigationBar appearance] setBarTintColor:[UIColor orangeColor]];
[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
[[UINavigationBar appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor whiteColor]}];
阅读各个页面上的答案建议将以下内容添加到 View Controller 中:
- (UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}
然后在 View Did Load 中调用它:
[self setNeedsStatusBarAppearanceUpdate];
这让我得到了一个带有白色文本的白色状态栏,我现在如何让状态栏变成橙色以匹配我的导航栏?
此处提到的解决方案https://stackoverflow.com/a/19513714/505457对于那些使用导航 Controller 的人来说不起作用,我想那是因为我的主 Controller 是一个标签栏 Controller 。
有人遇到过这个吗?提前感谢您提出的任何意见/建议。如果需要,我可以提供一个示例应用程序,但使用选项卡栏模板构建一个应用程序可能同样快速,添加一个导航栏,然后粘贴我的代码示例。
等 ionic
最佳答案
您可以通过名称找到状态栏 UIVIew
并对其进行着色。将此方法添加到您的 AppDelegate.m 并从 didFinishLaunchingWithOptions
调用它:
- (void)setStatusBarBackgroundColor:(UIColor *)color {
UIView *statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"];
if ([statusBar respondsToSelector:@selector(setBackgroundColor:)]) {
statusBar.backgroundColor = color;
}
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
...
[self setStatusBarBackgroundColor:[UIColor orangeColor]];
...
}
注意:商店中有使用此方法的应用程序。所以苹果的HIG政策没问题。
关于ios - 带导航栏的 TabBarController 上的彩色状态栏不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37014523/