【问题标题】:Status bar when hidden navigation bar in iOS 7iOS 7中隐藏导航栏时的状态栏
【发布时间】:2026-02-12 18:10:02
【问题描述】:

我使用 UINavigationController 构建应用程序是根视图,我有问题隐藏导航栏,当我隐藏导航栏 self.navigationController.navigationBarHidden = YES; 状态栏半透明不像状态栏 iOS 6 版本像应用程序 Apple Store

如何解决?

PS:我像 iOS 6 一样使用UIBarPositionTopAttached 到 UIStatusBar

【问题讨论】:

标签: ios uinavigationcontroller


【解决方案1】:

1.在您的viewDidLoad 中添加此行以获得默认的iOS6 样式..

[[UIApplication sharedApplication] setStatusBarStyle: UIStatusBarStyleBlackOpaque];

如果您在整个应用程序中需要默认样式,请尝试这个。

info.plist
      ----> Status Bar Style
                  --->UIStatusBarStyle to UIStatusBarStyleBlackOpaque

2.在iOS7..中增加如下调整状态栏高度的方法

- (void)viewDidAppear:(BOOL)animated
{
    [[UIApplication sharedApplication]setStatusBarStyle:UIStatusBarStyleLightContent];
    if ([[UIDevice currentDevice].systemVersion floatValue] >= 7) {
        CGRect windowFrame = [UIScreen mainScreen].bounds;
        windowFrame.origin.y+=20.0;
        windowFrame.size.height-= 20.0;
        self.view.frame = windowFrame;
        [self.view layoutIfNeeded];
    }
}

【讨论】:

  • 我使用 UIBarPositionTopAttached 到状态栏,如 iOS 6 版本。
【解决方案2】:

可以通过plist直接设置状态栏黑色不透明在.plist文件中添加这个键

<key>UIStatusBarStyle</key>
    <string>UIStatusBarStyleBlackOpaque</string>

谢谢。

【讨论】: