2017-07-04 106 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我編輯了我的答案。謝謝 –