Après avoir lu toutes les suggestions et essayé quelques choses, je pourrais faire fonctionner cela pour des contrôleurs de vue spécifiques en utilisant les étapes suivantes:
Premier pas:
Ouvrez votre info.plist et insérez une nouvelle clé nommée " Afficher l'apparence de la barre d'état basée sur le contrôleur " sur NON
Deuxième étape (juste une explication, pas besoin de mettre en œuvre ceci):
Normalement, nous mettons le code suivant dans l'application (méthode _: didFinishLaunchingWithOptions :) de l'AppDelegate,
Swift 2
UIApplication.sharedApplication().statusBarStyle = .LightContent
Swift 3
UIApplication.shared.statusBarStyle = .lightContent
mais cela affecte le statusBarStyle
de tous les ViewControllers.
Alors, comment faire fonctionner cela pour des ViewControllers spécifiques - Étape finale:
Ouvrez le fichier viewcontroller dans lequel vous souhaitez modifier statusBarStyle
et mettez le code suivant viewWillAppear()
,
Swift 2
UIApplication.sharedApplication().statusBarStyle = .LightContent
Swift 3
UIApplication.shared.statusBarStyle = .lightContent
En outre, implémentez la viewWillDisappear()
méthode pour ce viewController spécifique et mettez les lignes de code suivantes,
Swift 2
override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.Default
}
Swift 3
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
UIApplication.shared.statusBarStyle = UIStatusBarStyle.default
}
Cette étape modifie d'abord le statusBarStyle
pour le contrôleur de vue spécifique, puis default
le redéfinit en lorsque le contrôleur de vue spécifique disparaît. Ne pas mettre en œuvre le viewWillDisappear()
changera statusBarStyle
définitivement la nouvelle valeur définie deUIStatusBarStyle.LightContent
Status bar is initially hidden = YES
dans le fichier info.plist, "Afficher l'apparence de la barre d'état basée sur le contrôleur = NON" provoquera le masquage de la barre d'état.