>  Q&A  >  본문

objective-c - 设置NavigationBar为全透明的时候,statusBarStyle无法设定为Light

当我push到将当前视图控制器的navigationBar设定为全透明时,

- (void)viewDidLoad {
    [super viewDidLoad];
//     Do any additional setup after loading the view from its nib.
    //设定字体颜色
    self.navigationController.navigationBar.tintColor = [UIColor whiteColor];
    //设定背景图片为空
    [self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
    //半透明
    //self.navigationController.navigationBar.translucent = YES;
    //
    //self.edgesForExtendedLayout = UIRectEdgeNone;
}

- (UIStatusBarStyle)preferredStatusBarStyle {
    return UIStatusBarStyleLightContent;
}

然而顶部的状态栏是漆黑一片。
我的上一级VC也使用了preferredStatusBarStyle,但是显示没有问题,不同在于上一级VC隐藏了NavigationBar,而push到当前VC的时候是显示NavigationBar的..
求解各位大神!

迷茫迷茫2698일 전753

모든 응답(1)나는 대답할 것이다

  • PHPz

    PHPz2017-05-02 09:34:46

    <…


    ViewController가

    navigationController 안에 있으면 NavigationController의
    navigationBar.barStyle이 statusBarStyle을 결정한다는 사실을 발견했습니다.


    navigationBar의 barStyle을 UIBarStyleBlackTranslucent로 설정하면
    흰색 상태 표시줄 텍스트(예: UIStatusBarStyleLightContent)가 제공되고

    UIBarStyleDefault는 검정색 상태 표시줄 텍스트(예:

    UIStatusBarStyleDefault)가 제공됩니다.

    barTintColor를 통해 NavigationBar의
    색상을 완전히 변경하는 경우에도 이는 적용됩니다.


    具体的链接:http://stackoverflow.com/ques...

    회신하다
    0
  • 취소회신하다