0

i have already checked the answer which is given in stack overflow. like this method: prefersStatusBarHidden

      -(BOOL)prefersStatusBarHidden {
       return [self.navigationController prefersStatusBarHidden];
       }
Aravind A R
  • 2,674
  • 1
  • 15
  • 25
Priyank Patel
  • 791
  • 8
  • 6

1 Answers1

0

Create and import a category of navigation controller like below

#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

And call [self.navigationController setDefaultStatusBar] or [self.navigationController setLightStatusBar] from your viewDidLoad or somewhere from your view controller which has a parent UINavigationController

Pratik Jamariya
  • 810
  • 1
  • 10
  • 35