2015-12-21 99 views
0

我想添加功能,以便用戶將系統狀態欄樣式從Light更改爲Dark在按鈕單擊上更改狀態欄樣式

在應用程序啓動時,樣式爲Light

我已經添加以下代碼按鈕點擊:

//on button click 
[self setNeedsStatusBarAppearanceUpdate]; 

- (UIStatusBarStyle)preferredStatusBarStyle 
{ 
    if(darkMode) { 
     return UIStatusBarStyleDefault; 
    } else { 
     return UIStatusBarStyleLightContent; 
    } 
} 

prefferredStatusBarStyle方法不會被調用,並在狀態欄沒有發生變化。

+0

評論http://stackoverflow.com/a/17768797/1226963 – rmaddy

+0

我已經看到了。似乎並沒有適用於我的情況,我想改變狀態欄上的按鈕點擊 –

+0

我的壞....我有以下設置爲'info.plist'中的NO。發佈固定的「基於視圖控制器的狀態欄外觀」 –

回答

0
#import "ViewController.h" 

@interface ViewController() 
{ 
    int click; 
} 
@implementation ViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
} 
- (IBAction)ButtonClick:(UIButton *)sender 
{ 
     sender.selected=!sender.selected; 
     if (sender.isSelected) 
     { 
      click=1; 
     } 
     else 
     { 
      click=0; 
     } 
     [self setNeedsStatusBarAppearanceUpdate]; 
} 
- (UIStatusBarStyle)preferredStatusBarStyle 
{ 
     if(click) 
     { 
      return UIStatusBarStyleDefault; 
     } else 
     { 
      return UIStatusBarStyleLightContent; 
     } 
} 
} 
@end 
0

斯威夫特3

設置狀態欄需要更新,當您點擊按鈕。以這種方式'preferredStatusBarStyle'將被調用。

setNeedsStatusBarAppearanceUpdate()