ios9 mis la barre d'état de navigation paramètres de couleur de police

La demande pour le produit proposé, peuvent avoir besoin d'utiliser des couleurs différentes dans différentes interface barre d'état, il est nécessaire de changer la couleur par défaut de la barre d'état.

Avant iOS9, quand nous avons besoin de changer la couleur de la barre d'état, vous pouvez être disposé directement à l'intérieur AppDelegate, comme suit:

**

A:

**
[[UIApplication sharedApplication] setStatusBarStyle: UIStatusBarStyleLightContent];

Et fourni fichier Info.plist
Voir barre d'état avec contrôleur apparence NO

Cependant, le ios9 mis au rebut:
Rédiger des images décrites ici
il est généralement ajouté dans le code suivant dans votre RootViewController blanc à condition, comme suit:

    -(UIStatusBarStyle)preferredStatusBarStyle  
    {  

        return UIStatusBarStyleLightContent;  
    }  

Si vous ne pouvez toujours pas changer pour voir s'il Voir la barre d'état avec contrôleur apparence cette propriété info.plist votre dossier, il y avait pour voir si OUI, OUI, alors vous devriez être en mesure de réussir, le diagramme d'effet est illustré ci-dessous:

**

deux:

**
La police de la barre d'état est noir: UIStatusBarStyleDefault
barre d' état est blanc police: UIStatusBarStyleLightContent

APP Page d'accueil mise en couleur de la barre état
ajouté style barre d'état dans info.plist, en changeant la valeur de style, vous pouvez changer la couleur, la valeur par défaut est de style gris

1. Dans info.plist, la barre d'état basé sur un contrôleur Affichage apparence ensemble NO, blanc, YES, noir
si Vue barre d'état avec contrôleur apparence YES.
Le [UIApplication sharedApplication] .statusBarStyle invalide.

Résoudre individuelle VC dans une couleur de police de manière différente la barre d'état En
second lieu , le délégué de l' application:
[UIApplication sharedApplication] .statusBarStyle = UIStatusBarStyleLightContent; En
troisième lieu , la barre d'état à la couleur de police individuelle n'est pas le même dans vc
- (void) viewWillAppear: (BOOL ) animation
{
[sharedApplication le UIApplication] .statusBarStyle = UIStatusBarStyleDefault;
}
- (void) dans viewWillDisappear: (BOOL) animée
{
[super en viewWillDisappear: animation];
[sharedApplication la UIApplication] .statusBarStyle = UIStatusBarStyleLightContent;
}

Par le procédé suivant:
. 1, preferredStatusBarStyle procédé de réécriture dans vc vc.
- (UIStatusBarStyle) preferredStatusBarStyle
{
retour UIStatusBarStyleDefault;
}
2, dans l' appel viewDidLoad: [auto setNeedsStatusBarAppearanceUpdate];

Toutefois, lorsque vc dans nav, la méthode ci - dessus ne sert à rien, la méthode preferredStatusBarStyle de vc ne doit pas être appelé.
La raison en est, [auto setNeedsStatusBarAppearanceUpdate] est délivré,
ne fera appeler la méthode preferredStatusBarStyle du contrôleur de navigation,
méthode preferredStatusBarStyley est appelée avec le vc n'aurait pas.

Il existe deux solutions:
méthode:
Set navbar propriété barStyle aura une incidence sur la barre d'état des polices et des couleurs de fond. Comme suit.
// barre d' état police est blanc
couleur de fond de la barre de navigation // est noir.
self.navigationController.navigationBar.barStyle = UIBarStyleBlack;

// barre d' état police est noir
couleur de fond de la barre de navigation // est blanc, la couleur de fond de la barre d'état est blanc.
//self.navigationController.navigationBar.barStyle = UIBarStyleDefault;

Deuxième méthode:
personnalisée barre de navigation sous - classe de cette sous - classe de substitution dans preferredStatusBarStyle Méthode:
MyNav NAV * = [[MyNav la alloc] initWithRootViewController: VC];
self.window.rootViewController = NAV;

@implementation MyNav

  • (UIStatusBarStyle) preferredStatusBarStyle
    {
    UIViewController * topVC = self.topViewController;
    retour [topVC preferredStatusBarStyle];
    }
Publié 83 articles originaux · a gagné les éloges 12 · vues 180 000 +

Je suppose que tu aimes

Origine blog.csdn.net/shengdaVolleyball/article/details/54602971
conseillé
Classement