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 statusBarStylede tous les ViewControllers.
Alors, comment faire fonctionner cela pour des ViewControllers spécifiques - Étape finale:
Ouvrez le fichier viewcontroller dans lequel vous souhaitez modifier statusBarStyleet 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 statusBarStylepour le contrôleur de vue spécifique, puis defaultle redéfinit en lorsque le contrôleur de vue spécifique disparaît. Ne pas mettre en œuvre le viewWillDisappear()changera statusBarStyledéfinitivement la nouvelle valeur définie deUIStatusBarStyle.LightContent
Status bar is initially hidden = YESdans 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.