2 votes

remplacer preferredStatusBarStyle dans l'extension UIViewConrtoller

Je voudrais passer outre preferredStatusBarStyle dans une extension de UIViewController comme ça :

extension UIViewController {
    open override var preferredStatusBarStyle: UIStatusBarStyle {
      return .lightContent
    }
}

Le compilateur génère cette erreur Getter for 'preferredStatusBarStyle' with Objective-C selector 'preferredStatusBarStyle' conflicts with method 'preferredStatusBarStyle()' with the same Objective-C selector

En appliquant la même dérogation à UINavigationController au lieu de UIViewController fonctionne, mais preferredStatusBarStyle est une variable héritée par UIViewController.

-> Pourquoi est-il possible d'appliquer cette extension à UINavigationController mais pas à UIViewController

4voto

michi Points 1057

Vous ne pouvez pas surcharger (redéclarer l'implémentation de) des propriétés déjà implémentées de cette façon via des extensions dans le fichier Swift sur une classe qui présente la propriété.

Vous devez absolument créer un UIViewController et l'utiliser dans toute l'application à la place.

Il y a cependant une option. Vous pouvez passer outre en utilisant Objectif-C en prévoyant une catégorie d'extension, chose similaire appliquée aux UIFont répondu ici : Existe-t-il un moyen de modifier la police par défaut de votre application ? . Cependant, il n'est pas totalement sûr de le faire et vous devez vous attendre à ce que des licornes arrivent si vous ne faites pas assez attention.

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