状态栏和导航栏根据不同ViewController改变

首先在info.plist设置View controller-based status bar appearance  为NO  这样状态栏就是由UIApplication 单例统一控制

 

 

//在这个控制器,状态栏是白色,并且隐藏导航栏

- (void)viewWillAppear:(BOOL)animated {

    [super viewWillAppear:animated];

    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];//白色状态栏

    self.navigationController.navigationBar.hidden = YES;

 

    //每次界面出现  刷新数据

    [self requestData];

 

}

//离开这个控制器,状态栏恢复黑色,并且导航栏显示出来

-(void)viewWillDisappear:(BOOL)animated

{

    [super viewWillDisappear:animated];

    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];//黑色状态栏

    self.navigationController.navigationBar.hidden = NO;

 

 

}

 

 

//在当前控制器 导航栏用白色

- (void)viewWillAppear:(BOOL)animated {

    [super viewWillAppear:animated];

    [self.navigationController.navigationBar setShadowImage:[UIImage imageWithColor:kColor_White]];

    [self.navigationController.navigationBar setBackgroundImage:[UIImage imageWithColor:kColor_White] forBarMetrics:UIBarMetricsDefault];

    

}

//离开当前控制器 导航栏恢复  统一风格颜色

-(void)viewWillDisappear:(BOOL)animated

{

    [super viewWillDisappear:animated];

    [self.navigationController.navigationBar setShadowImage:[UIImage imageWithColor:kColor_NavBar]];

    [self.navigationController.navigationBar setBackgroundImage:[UIImage imageWithColor:kColor_NavBar] forBarMetrics:UIBarMetricsDefault];

}

posted @ 2017-05-09 17:27  湘岳  阅读(219)  评论(0编辑  收藏  举报