48 votes

preferredStatusBarStyle supprimé dans Swift 3?

donc je viens de mettre à jour Xcode 8 et je viens de recevoir cette erreur pour le code suivant.

L'erreur est que la méthode ne substitue aucune méthode de ses superclasses.

 override func preferredStatusBarStyle() -> UIStatusBarStyle {
    return UIStatusBarStyle.lightContent
}
 

entrez la description de l'image ici

J'apprécierais vraiment l'aide, merci!

146voto

rickster Points 19870

Dans iOS 10, preferredStatusBarStyle est une propriété, et non une méthode. Ainsi, au lieu de la remplaçant avec un func déclaration comme vous l'avez fait, vous remplacez la lecture avec un var déclaration:

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}

La Swift du compilateur message d'erreur ici, il pourrait sans doute être mieux, car il semble connaître votre remplacement func est censé couvrir d'un bien, il pourrait probablement que comme un fix-it. Je vous recommande le dépôt d'un bug à Swift open source.


Remarque: dans iOS 12, vous pouvez aussi définir le UIViewControllerBasedStatusBarAppearance (aka "- Vue-contrôleur d'état basé sur l'apparence de la barre" le drapeau de votre Info.plist. Et de vérifier votre vue-contrôleur de la hiérarchie, en tant que conteneur de vue comme les contrôleurs de la navigation et de la vue fractionnée peut pas se propager à partir de leurs enfants.

7voto

Imanou Petit Points 43068

L' iOS 10.0 API Diff montre que l' UIViewController.preferredStatusBarStyle() -> UIStatusBarStyle méthode a été supprimé et que l' UIViewController.preferredStatusBarStyle de la propriété a été ajoutée.


De manière similaire, avec Xcode 8, vous pouvez droit-cliquez sur n'importe quel UIViewController dans votre code, sélectionnez Saut à la Définition et effectuez une recherche pour preferredStatusBarStyle. Vous découvrirez qu' preferredStatusBarStyle a maintenant la déclaration suivante:

@available(iOS 7.0, *)
open var preferredStatusBarStyle: UIStatusBarStyle { get }

Par conséquent, l'extrait de code suivant montre comment substituer preferredStatusBarStyle avec Xcode 8 / Swift 3:

override var preferredStatusBarStyle: UIStatusBarStyle {
    get {
        return .lightContent
    }
}

Ou, dans un temps beaucoup plus court et le style préféré:

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X