gpt4 book ai didi

ios - 在基于 UINavigationController 的应用程序中切换 UIStatusBar 颜色(黑色/白色)

转载 作者:行者123 更新时间:2023-11-29 01:57:32 26 4
gpt4 key购买 nike

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

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

为此,我尝试了很多基于不同答案的方法。这些是:
1. View controller-based status bar appearance , 但它不适用于基于 UINavigationControler 的应用程序
2. Setting self.navigationController.navigationBar.barStyle = UIBarStyleBlack;将状态栏文本颜色设置为白色,但一旦设置为白色,它不会将颜色变回黑色

它将如何运作?

最佳答案

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

- (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];
}

关于ios - 在基于 UINavigationController 的应用程序中切换 UIStatusBar 颜色(黑色/白色),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30688952/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com