Rumah  >  Soal Jawab  >  teks badan

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 hari yang lalu754

membalas semua(1)saya akan balas

  • PHPz

    PHPz2017-05-02 09:34:46

    终于在stackoverflow找到对应的解答,加上下面这句
    self.navigationController.navigationBar.barStyle = UIBarStyleBlack;

    Saya mendapati bahawa jika ViewController anda berada di dalam
    navigationController maka navigationController's
    navigationBar.barStyle menentukan statusBarStyle.

    Menetapkan barStyle navigationBar anda kepada UIBarStyleBlackTranslucent
    akan memberikan teks bar status putih (cth. UIStatusBarStyleLightContent),
    dan UIBarStyleDefault akan memberikan teks bar status hitam (mis.
    UIStatusBarStyleDefault).

    UIStatusBarStyleDefault).

    Perhatikan bahawa ini terpakai walaupun anda menukar sepenuhnya warna
    navigationBar melalui barTintColornya.

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

    balas
    0
  • Batalbalas