2015-12-21 2 views
0

Je souhaite ajouter la possibilité pour l'utilisateur de modifier le style de barre d'état du système de Light à Dark.Modifier le style de barre d'état sur le bouton cliquez sur

Lors du lancement de l'application, le style est Light.

J'ai ajouté le code suivant sur le bouton clic:

//on button click 
[self setNeedsStatusBarAppearanceUpdate]; 

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

Mais la méthode prefferredStatusBarStyle est jamais appelé et aucun changement à la barre d'état se produit.

+0

Revue http://stackoverflow.com/a/17768797/1226963 – rmaddy

+0

J'ai vu ça. Ne semble pas s'appliquer dans mon cas où je veux changer la barre d'état sur le bouton cliquez sur –

+0

mon mauvais .... j'ai eu la valeur suivante à NON dans le 'info.plist'. Problème corrigé 'Afficher l'apparence de la barre d'état basée sur le contrôleur' –

Répondre

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

Swift 3

Set que la barre d'état doit être mis à jour lorsque vous cliquez sur le bouton. De cette manière, 'preferredStatusBarStyle' sera appelé.

setNeedsStatusBarAppearanceUpdate()