web-dev-qa-db-fra.com

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 Info.plist fichier pour "Afficher l’apparence de la barre d’état basée sur le contrôleur", mais il n’y figure pas.

Comment 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!

73
Aggressor

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

Objective-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 la méthode presentViewController: animée: complétion: ):

Objective-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 à partir d'un contrôleur de vue 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 childViewControllerForStatusBarHidden: propriété. Par exemple:

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

Objective-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 du conteneur responsable de la gestion de la barre d'état

Objective-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

171
VaporwareWolf
  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 ajouter une nouvelle clé
  4. Tapez commencez par la lettre majuscule V et automatiquement le premier choix sera Apparence de la barre d'état basée sur le contrôleur d'affichage. Ajoutez cela comme la clé.
  5. Définissez la valeur sur "NO"
  6. Allez à vous AppDelegate.m pour Objective-C ( pour Swift langue: AppDelegate.Swift )
  7. Ajouter le code, à l'intérieur de 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!

120
nycdanie

Vous pouvez masquer la barre d'état sans écrire une seule ligne de code, il suffit de deux entrées dans l'info.plist la première est

"Afficher l'apparence de la barre d'état basée sur le contrôleur" défini sur NO

le second est

"La barre d'état est initialement masquée" défini sur OUI

27
CSJordan

Vous pouvez ajouter cette ligne à votre fichier Info.plist si elle n'y est pas. Accédez simplement au projet dans Xcode, accédez à la section "Informations" et passez la souris sur l'une des lignes existantes. Un bouton "+" devrait apparaître, vous permettant d'ajouter une ligne et de saisir "Afficher l'apparence de la barre d'état basée sur le contrôleur".

11
Nerrolken

Pour iOS 10 avec Swift 3, vous devez utiliser:

override var prefersStatusBarHidden: Bool {
    get {
        return true
    }
}
9
Ramon Vasconcelos
  1. Ouvrir info.plist
  2. "Afficher l'apparence de la barre d'état basée sur le contrôleur" défini sur NO
  3. "La barre d'état est initialement masquée" défini sur OUI
  4. Terminé

Pas besoin d'écrire une ligne de code ... A la vôtre

2
emraz