如何更改状态栏的背景颜色而不是导航栏的背景颜色?

How to change background color of status bar but not that of navigation bar?

根目录:

PushVc:

如何实现这个效果?

如何改变状态栏的背景颜色而不改变导航栏的背景颜色?

将此方法添加到您的每个 viewcontroller,或(从类别方法中调用)

-(void)status_bar_color
{
      if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0)
      {
            UIView *addStatusBar = [[UIView alloc] init];
            CGSize result = [[UIScreen mainScreen] bounds].size;
            if(result.height >750)
            {
                  addStatusBar.frame = CGRectMake(0, 0, 800, 23);
            }
            else if(result.height >550)//IPod
            {
                  addStatusBar.frame = CGRectMake(0, 0, 320, 23);
            }
            else
            {
                  addStatusBar.frame = CGRectMake(0, 0, 320, 23);
            }

            addStatusBar.backgroundColor=[UIColor blackColor];
            [self.view addSubview:addStatusBar];
      }
}

statusbar的轻内容,也用这个方法,

-(UIStatusBarStyle)preferredStatusBarStyle
{
      return UIStatusBarStyleLightContent;
}

酷..

设置 View controller-based status bar appearanceNO 。在您的项目中 info.plist.and 从项目设置您可以根据您的要求更改状态栏 bG 颜色

我有一个建议,请更改 windows BG 颜色并设置状态栏 UIStatusBarStyleBlackTranslucent 在 appdelegate.m 中添加以下代码:

self.window.backgroundColor = [UIColor <yourColor>];
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackTranslucent];

这是我用来更改状态栏颜色或背景的代码。

     if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0"))
        {
            UIView *view=[[UIView alloc] initWithFrame:CGRectMake(0, 0,[UIScreen mainScreen].bounds.size.width, 20)];
     view.backgroundColor=[UIColor YourColorName];

If you wanted to add image you can use the line given below.  
/*
            view.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"loginbackground.png"]];
            [self.view addSubview:view];
*/        
}

如果我不工作,试试这个,请告诉我。