web-dev-qa-db-fra.com

Impossible de masquer la barre d'état — Swift 3,

Je cache habituellement la barre d'état avec

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

mais Xcode me donne une erreur en disant "La méthode ne remplace rien de sa super-classe".

Si je supprime le override, Xcode génère une erreur différente: "Method 'prefersStatusBarHidden ()" avec le sélecteur Objective-C "prefersStatusBarHidden" est en conflit avec getter pour "prefersStatusBarHidden" du superclass "UIViewController" avec le même Objective-C. sélecteur"


J'ai également "Masquer la barre d'état" dans les paramètres généraux de ma cible:

enter image description here

mais la barre d'état apparaît toujours.


J'ai trouvé cette méthode dans une autre réponse Stack Overflow

UIApplication.shared.setStatusBarHidden(true, with: .none)

mais cela ne cache pas non plus la barre d'état.


Dans Xcode 8 Beta 1, j’utilisais les première et deuxième méthodes, qui masquaient la barre d’état (la première méthode ne renvoyait pas d’erreur). Que puis-je faire maintenant pour masquer la barre d'état avec Xcode 8 Beta 4?

Remarque: la barre d'état apparaît sur les périphériques Simulator et physiques, tous exécutant iOS 10.

46
owlswipe

Nous devons remplacer la propriété elle-même sur Swift 3 (ceci est nouveau dans Xcode 8 Beta 4)):

override var prefersStatusBarHidden: Bool {  
    return true  
}  

pour un autre exemple, vous pouvez aussi obtenir ici et ici

Pour en savoir plus sur ce qu'est ce changement et pourquoi c'est nécessaire, voir La réponse de Matt à ce sujet .

109
Anbu.Karthik