web-dev-qa-db-fra.com

Xcode Masquer la barre d'état blanche ios 10

Je veux une barre d'état blanche dans mon application. Pour cela, je règle View controller-based status bar appearance sur NO et Status bar style sur UIStatusBarStyleLightContent. Mais maintenant, je dois masquer la barre d'état dans certains contrôleurs de vue. Pour le cacher, je dois définir View controller-based status bar appearance sur YES et ajouter - (BOOL)prefersStatusBarHidden {return YES;}. Mais la barre d'état est noire maintenant. Il est noir lorsque View controller-based status bar appearance est YES et blanc si NO. La question est donc de savoir comment définir et masquer la barre d'état blanche.

UPD: code Dans VC pour lequel je souhaite afficher une barre d'état blanche (prefferdSTatusBarStyle non appelée)

 enter image description here

code dans VC avec barre d'état masquée

 enter image description here

paramètres .plist

 enter image description here

Le résultat est une barre d'état noire, qui se cache dans certains VC

UPD2:

Je sais que c'est mauvais d'utiliser des méthodes obsolètes, mais avec [[UIApplication sharedApplication] setStatusBarHidden:YES];, tout fonctionne comme je le veux. Si quelqu'un a une meilleure solution s'il vous plaît faites le moi savoir.

6
Ossir

vous pouvez définir en utilisant le style de barre d'état xcode est "light"

 enter image description here

0
Birendra

Ceci est la version Swift:

Pour masquer la barre d'état ou modifier son apparence, vous devez remplacer les propriétés suivantes dans votre contrôleur de vue lui-même.

override var prefersStatusBarHidden: Bool{
        return true
}

ce qui précède masque la barre d’état et en-dessous si vous souhaitez le définir en blanc:

override var preferredStatusBarStyle: UIStatusBarStyle {
        return .lightContent
}
5
Shawn Frank

Dans votre fichier Plist, ajoutez la propriété View controller-based status bar appearance Bool et définissez-la sur YES.

Maintenant, dans votre contrôleur de vue, ajoutez les méthodes comme ci-dessous:

// TO MAKE STATUS BAR WHITE
override func preferredStatusBarStyle() -> UIStatusBarStyle {
        return .LightContent
}

// TO MAKE STATUS BAR BLACK
override func preferredStatusBarStyle() -> UIStatusBarStyle {
        return .LightContent
}

// RETURN TRUE TO HIDE AND FALSE TO SHOW STATUS BAR
override func prefersStatusBarHidden() -> Bool {
        return true
}

Pour Objective-C

- (BOOL)prefersStatusBarHidden {
    return NO;
}

-(UIStatusBarStyle)preferredStatusBarStyle {
    return UIStatusBarStyleLightContent;
}

Pour supprimer le code redondant, vous pouvez créer une BaseViewController en tant que sous-classe de UIViewController et ajouter les méthodes dans cette classe. Et substituez la méthode dans la classe qui nécessite un changement.

2
Parth Adroja

si votre viewcontroller est intégré à UInavigationController, essayez d’écrire ce code dans votre

-(BOOL)prefreStatusBarHidden
{
       return [self.navigationController prefersStatusBarHidden];
}
0
Nishant Tiwari