ホームページ  >  に質問  >  本文

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日前751

全員に返信(1)返信します

  • PHPz

    PHPz2017-05-02 09:34:46

    スタックオーバーフローに到達するための解答、追加上下面这句
    self.navigationController.navigationBar.barStyle = UIBarStyleBlack;

    ViewController が
    navigationController 内にある場合、navigationController の
    navigationBar.barStyle が statusBarStyle を決定することがわかりました。

    navigationBar の barStyle を UIBarStyleBlackTranslucent に設定すると
    は白いステータス バー テキスト (つまり UIStatusBarStyleLightContent) が表示され、
    UIBarStyleDefault は黒いステータス バー テキスト (つまり
    UIStatusBarStyleDefault) になります。#🎜 🎜#

    これは、barTintColor を介してナビゲーションバーの

    色を完全に変更した場合にも適用されることに注意してください。

    具体的な接続:http://stackoverflow.com/ques...

    返事
    0
  • キャンセル返事