iOS:不使用UINavigationController设置状态栏颜色
在我的iOS应用程序中,我使用的是不带UINavigationController的UINavigationBar。我怎样才能将应用程序状态栏的颜色设置为与自定义蓝色的UINavigationBar的颜色相匹配?已尝试但不起作用:iOS:不使用UINavigationController设置状态栏颜色,ios,cocoa-touch,uinavigationbar,Ios,Cocoa Touch,Uinavigationbar,在我的iOS应用程序中,我使用的是不带UINavigationController的UINavigationBar。我怎样才能将应用程序状态栏的颜色设置为与自定义蓝色的UINavigationBar的颜色相匹配?已尝试但不起作用: 在plist中设置UIViewControllerBasedStatusBarAppearance属性没有任何效果 设置我的UINavigationBar的BartinColor不会影响状态栏,可能是因为它不由UINavigationViewController管理
- 在plist中设置
属性没有任何效果UIViewControllerBasedStatusBarAppearance
- 设置我的UINavigationBar的
不会影响状态栏,可能是因为它不由UINavigationViewController管理BartinColor
- 设置
也不起作用UINavigationBar.appearance().BartinColor
有什么建议吗?将此方法添加到视图控制器:
- (UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent; // or UIStatusBarStyleDefault
}
好吧,多亏了这个问题的公认答案,我才算明白: 在viewcontroller中采用UINavigationBarDelegate协议并实现以下方法(Swift):
显然,所有以这种方式定位的导航栏都会将其BarIntColor扩展到状态栏。感谢您的回答,但请阅读我的问题,我想匹配我的UINavigationBar的颜色,在本例中,这是一种自定义的蓝色。状态栏只有两种变体。匹配到底是什么意思?如果在UINavigationController管理UINavigationBar时设置其barTintColor,则状态栏将获得相同的颜色。我的问题是:当您单独使用UINavigationBar时,这不会发生……这对我来说很有效-请记住,您需要确保您的视图控制器被设置为
UINavigationBar
的代理,或者在viewDidLoad
中显式地在代码中使用:myNavigationBar.delegate=self
,或者使用界面构建器并将导航栏的代理出口连接到视图控制器
func positionForBar(bar: UIBarPositioning) -> UIBarPosition {
return UIBarPosition.TopAttached
}