2017-07-04 89 views
0

我在许多应用程序中更改statusBar颜色,但现在不知道发生了什么,但不会更改statusBar颜色。StatusBar颜色不变

我的info.plist

基于控制器的视图状态栏外观 - > YES

我的ViewController ViewDidlLoad

// Set Status Bar 
    [self setNeedsStatusBarAppearanceUpdate]; 

- (UIStatusBarStyle)preferredStatusBarStyle 
{ 
    return UIStatusBarStyleLightContent; 
} 

,但它不会改变statusBar颜色。

我把参考的形式此网址:https://teamtreehouse.com/community/ios-9-applicationsetstatusbarstyle-deprecated

它将使状态条的颜色为白色,但在所有ViewControllers。我想要statusBar与1 ViewController中的黑色。

如何解决这个问题?

+0

如何在特定的ViewController中将状态栏颜色更改为黑色? –

+0

@Pankil UIApplication.shared.statusBarStyle =。lightContent在AppDelegate中添加此代码 –

+0

@Pankil然后,您需要更改特定控制器中的statusBar(默认)样式,您需要将其设置为黑色并且在viewWillDisappear中再次需要将样式更改为lightContent –

回答

1

设置View controller-based status bar appearanceNO

打开您要更改statusBarStyle并把下面的代码在viewWillAppear

-(void)viewWillAppear:(BOOL)animated{ 
    [super viewWillAppear:animated]; 

    [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent; 
} 

另外的视图 - 控制文件,实现对特定的viewController的viewWillDisappear方法放下面几行代码,

-(void)viewWillDisappear:(BOOL)animated{ 
    [super viewWillDisappear:animated]; 

    [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault; 

} 

这里是代码的输出,我已经实现:

enter image description here

enter image description here

对于其他Viewcontrollers

enter image description here

+0

好的。然后分享您的代码我想查看它 –

+0

好的。这意味着你没有例子..... –

+0

@AshokLondhe,我把基于视图控制器的状态栏外观设置为否 – Pankil

-1

设置基于控制器的视图状态栏外观无

试试下面的代码: 打开您要更改statusBarStyle为黑色,把下面的代码在viewWillAppear中

-(void)viewWillAppear:(BOOL)animated{ 
    [super viewWillAppear:animated]; 
    [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault; 
} 

此外,实施特定的viewController的viewWillDisappear方法,并把该视图 - 控制文件以下几行代码,

-(void)viewWillDisappear:(BOOL)animated{ 
    [super viewWillDisappear:animated]; 
    [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent; 
} 
+0

@Pankil我编辑了我的答案。谢谢 –