首页 文章

设置为浅时,iOS StatusBarStyle不会更改

提问于
浏览
1

我正在开发一个应用程序,我希望navigationBar不可见并具有深色背景 . 我希望状态栏颜色为白色 . 我还希望最初隐藏状态栏 .

我已将状态栏样式设置为Light

但我得到的结果总是黑色文本状态栏,如下所示 .

我试图将“基于视图控制器的状态栏外观”设置为NO,结果是有一个隐藏的状态栏 . 我也尝试过更喜欢StatusBarHidden返回NO但仍然相同 .

我试图“查看基于控制器的状态栏外观”为YES,结果是黑色文本 . 我试图让preferredStatusBarStyle返回UIStatusBarStyleLightContent但仍然相同 .

我做错了什么 . 提前致谢 .

2 回答

  • 0

    AppDelegate中:

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        UIApplication.shared.statusBarStyle = .lightContent
        return true
    }
    
  • 0

    问题是UINavigationController导致初始视图控制器被嵌入 . 我已经将UINavigationController(NLNavigationController)子类化,并将初始导航控制器的自定义类设置为此(NLNavigationController) . 在新的子类中我有这个 .

    - (void)viewDidLoad {
        [super viewDidLoad];
        [self setNeedsStatusBarAppearanceUpdate];
    }
    
    -(BOOL)prefersStatusBarHidden{
        return NO;
    }
    
    -(UIStatusBarStyle)preferredStatusBarStyle{
        return UIStatusBarStyleLightContent;
    }
    

    为了完成这一切,我必须在info.plist中设置

    将基于控制器的状态栏外观设置为YES

    通过这些更改,我得到了以下结果 .

    https://i.stack.imgur.com/x88Ae.png

相关问题