2017-02-21 2 views
1

Pouvez-vous me suggérer quelle est la bonne façon de configurer le style de la barre d'état pour MFMailComposeViewController dans iOS> = 9.0? Je sais, que [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent]; est déprécié et je ne peux pas l'utiliser. Je sais que la solution ajoute la catégorie comme ceci:UIStatusBarStyleLightContent pour MFMailComposeViewController

#import "MFMailComposeViewController+StatusBarStyle.h" 
@implementation MFMailComposeViewController (StatusBarStyle) 
#pragma mark - Status bar management 
- (UIStatusBarStyle)preferredStatusBarStyle { 
    return UIStatusBarStyleLightContent; 
} 
- (UIViewController *)childViewControllerForStatusBarStyle { 
    return nil; 
} 
@end 

Mais dans ce cas, j'activer l'option View controller-based status bar appearance et mettre en œuvre - (UIStatusBarStyle)preferredStatusBarStyle dans les tous ViewContollers qui existent dans mon application (et j'ai beaucoup d'entre eux) . Alors, y a-t-il une autre solution?

+0

il est faux d'ajouter une catégorie lorsque vous souhaitez remplacer quelque chose, donc ce n'est pas une solution du tout – igrek

+0

se référer à https://stackoverflow.com/a/ 5272612/907692 pour plus de détails – igrek

Répondre

0

D'accord, je créé mon propre CommonNavigationViewController, a ajouté ces deux méthodes:

- (UIStatusBarStyle)preferredStatusBarStyle { 
    return UIStatusBarStyleLightContent; 
} 

- (UIViewController *)childViewControllerForStatusBarStyle { 
    return nil; 
} 

Et changé la classe de Root Navigation Controller dans Storyboard à celui-ci. Il aide et maintenant tous les VC qui apparaissent dans la pile du contrôleur de navigation ont la barre d'état de la lumière. Mais de toute façon, je n'aime pas cette solution :(