Créer et importer une catégorie de contrôleur de navigation comme ci-dessous
#import <UIKit/UIKit.h>
@interface UINavigationController (StatusBarStyle)
- (void)setDefaultStatusBar;
- (void)setLightStatusBar;
@end
#import "UINavigationController+StatusBarStyle.h"
@implementation UINavigationController (StatusBarStyle)
BOOL isLight;
- (void)setDefaultStatusBar {
isLight=NO;
[self setNeedsStatusBarAppearanceUpdate];
}
- (void)setLightStatusBar {
isLight=YES;
[self setNeedsStatusBarAppearanceUpdate];
}
- (UIStatusBarStyle)preferredStatusBarStyle {
if (isLight) {
return UIStatusBarStyleLightContent;
}
else{
return UIStatusBarStyleDefault;
}
}
@end
Et appelez [self.navigationController setDefaultStatusBar]
ou [self.navigationController setLightStatusBar]
de votre viewDidLoad ou quelque part de votre contrôleur de vue qui a un parent UINavigationController
cochez cette case (https://stackoverflow.com/questions/41670828/xcode-hide-white-status-bar-ios-10) –