Masquer la barre d’état dans l’application iOS 8

j’ai essayé

[[UIApplication sharedApplication] setStatusBarHidden:YES]; 

Cela ne fait rien.

Et j’ai regardé dans mon fichier Info.plist pour “Afficher l’apparence de la barre d’état basée sur le contrôleur” mais ce n’est pas le cas.

Comment puis-je masquer la barre d’état blanche en haut de l’écran (avec l’horloge et la charge de la batterie) dans mon application pour Xcode 6? Je vous remercie!

Vous devez remplacer cette méthode sur chaque contrôleur de vue, sauf si vous avez cette entrée plist.

Objectif c

 -(BOOL)prefersStatusBarHidden{ return YES; } 

Swift 2

 override func prefersStatusBarHidden() -> Bool { return true } 

Swift 3+

 override var prefersStatusBarHidden: Bool { return true } 

Et n’oubliez pas de définir (si vous présentez un contrôleur de vue en appelant le presentViewController: animé: achèvement: méthode):

Objectif c

 vcToBeShownWithoutStatusbar.modalPresentationCapturesStatusBarAppearance = YES; 

Rapide

 vcToBeShownWithoutStatusbar.modalPresentationCapturesStatusBarAppearance = true 

Documentation: https://developer.apple.com/reference/uikit/uiviewcontroller/1621453-modalpresentationcapturesstatusb

Si vous modifiez la barre d’état d’un contrôleur de vue de conteneur (par exemple, UINavigationController ou UIViewController avec des contrôleurs de vue enfant) et que vous souhaitez modifier le contrôleur de vue responsable de la barre d’état, vous devez utiliser la propriété childViewControllerForStatusBarHidden: . Par exemple:

Définir la première instance du contrôleur de vue toujours responsable de la gestion de la barre d’état

Objectif c

 - (UIViewController *)childViewControllerForStatusBarHidden { return childViewControllers.first; // or viewControllers.first } 

Swift 2

 override var childViewControllerForStatusBarHidden() -> UIViewController? { return childViewControllers.first // or viewControllers.first } 

Swift 3+

 override var childViewControllerForStatusBarHidden: UIViewController? { return childViewControllers.first // or viewControllers.first } 

Définir le contrôleur de vue de conteneur responsable de la gestion de la barre d’état

Objectif c

 - (UIViewController *)childViewControllerForStatusBarHidden { return nil; } 

Swift 2

 override func childViewControllerForStatusBarHidden() -> UIViewController? { return nil } 

Swift 3+

 override var childViewControllerForStatusBarHidden: UIViewController? { return nil } 

Documentation: https://developer.apple.com/documentation/uikit/uiviewcontroller/1621451-childviewcontrollerforstatusbarh

  1. Aller au fichier Info.plist
  2. Survolez l’une de ces lignes et un bouton (+) et (-) apparaîtra.
  3. Cliquez sur le bouton plus pour append une nouvelle clé
  4. Tapez début avec majuscule V et automatiquement le premier choix sera Afficher l’apparence de la barre d’état basée sur le contrôleur . Ajoutez cela comme clé.
  5. Définissez la valeur sur “NO”
  6. Allez à vous AppDelegate.m pour Objective-C ( pour un langage rapide: AppDelegate.swift )
  7. Ajouter le code dans la méthode

Pour Objective-C:

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [application setStatusBarHidden:YES]; return YES; } 

Pour Swift:

 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey:Any]?) -> Bool { application.statusBarHidden = true return true } 

Terminé! Exécutez votre application et plus de barre d’état!

Vous pouvez masquer la barre d’état sans écrire une seule ligne de code, il suffit de deux entrées dans le info.plist le premier est

“Afficher l’apparence de la barre d’état basée sur le contrôleur” définie sur NO

le second est

“La barre d’état est initialement masquée” définie sur YES

Vous pouvez append cette ligne à votre fichier Info.plist si ce n’est pas le cas. Accédez simplement au projet dans Xcode, accédez à la section “Info” et survolez l’une des lignes existantes. Un bouton “+” devrait apparaître, vous permettant d’append une ligne et de saisir “Afficher l’apparence de la barre d’état basée sur le contrôleur”.

Pour iOS 10 avec Swift 3, vous devez utiliser:

 override var prefersStatusBarHidden: Bool { get { return true } } 
  1. Ouvrir info.plist
  2. “Afficher l’apparence de la barre d’état basée sur le contrôleur” définie sur NO
  3. “La barre d’état est initialement masquée” définie sur YES
  4. Terminé

Pas besoin d’écrire une ligne de code …

Si vous utilisez UIDocumentInteractionController pour afficher les données, vous ne masquerez jamais la barre d’état.

  [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent]; 

cette ligne change la couleur du contenu de la barre d’état en blanc