在状态栏的位置添加一个view,设置view的颜色,这个颜色就可以作为状态栏的底色
UIView *barView = [[UIView alloc] initWithFrame:CGRectMake(0, -20, self.view.frame.size.width, 20)]; barView.backgroundColor = [UIColor blueColor]; [self.navigationController.navigationBar addSubview:barView];
设置Navigation bar的barstyle会影响status bar的字的颜色和背景色(但是只有黑白两种)
self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
修改自定义navigationcontroller挤baseViewController
- 自定义一个UINavigationController的子类,在子类中重写这个方法:
-(UIStatusBarStyle)preferredStatusBarStyle { UIViewController* topVC = self.topViewController; return [topVC preferredStatusBarStyle]; }
- 在ViewController中重写下面这个方法:
-(UIStatusBarStyle)preferredStatusBarStyle { return UIStatusBarStyleLightContent; }