You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS 13中statusBarHidden已废弃,如何获取statusBarManager句柄?

iOS 13+ 获取 StatusBarManager 方法指南

嘿,这个问题我太熟悉了!iOS 13 之后苹果把状态栏的管理逻辑从全局的 UIApplication 迁移到了**窗口场景(UIWindowScene)**层级,所以原来的 UIApplication.sharedApplication.statusBarHidden=YES; 才会被废弃。下面分不同场景给你讲怎么拿到 statusBarManager 的句柄:

1. 在 UIViewController 中获取

这是最常见的场景,直接通过控制器的 view 关联的 window 就能拿到对应的 windowScene,进而获取 statusBarManager:

// Objective-C 写法
UIStatusBarManager *statusBarManager = self.view.window.windowScene.statusBarManager;
if (statusBarManager) {
    statusBarManager.statusBarHidden = YES;
}
// Swift 写法
if let statusBarManager = self.view.window?.windowScene?.statusBarManager {
    statusBarManager.isStatusBarHidden = true
}

2. 在 AppDelegate 或全局代码中获取

如果需要在全局层面操作,得先筛选出当前处于活跃状态的窗口场景(因为 iOS 13+ 支持多窗口):

// Objective-C 写法
UIStatusBarManager *statusBarManager = nil;
for (UIScene *scene in [UIApplication sharedApplication].connectedScenes) {
    if (scene.activationState == UISceneActivationStateForegroundActive && [scene isKindOfClass:UIWindowScene.class]) {
        statusBarManager = ((UIWindowScene *)scene).statusBarManager;
        break;
    }
}
if (statusBarManager) {
    statusBarManager.statusBarHidden = YES;
}
// Swift 写法
guard let activeScene = UIApplication.shared.connectedScenes
        .filter({ $0.activationState == .foregroundActive })
        .first as? UIWindowScene else {
    return
}
let statusBarManager = activeScene.statusBarManager
statusBarManager?.isStatusBarHidden = true

3. 在 SceneDelegate 中获取

如果你的项目是 iOS 13+ 默认的 SceneDelegate 架构,那直接用当前场景的属性就能拿到,非常方便:

// Objective-C 写法
UIStatusBarManager *statusBarManager = self.windowScene.statusBarManager;
if (statusBarManager) {
    statusBarManager.statusBarHidden = YES;
}
// Swift 写法
if let statusBarManager = self.windowScene?.statusBarManager {
    statusBarManager.isStatusBarHidden = true
}

另外补充一句:如果你的项目是基于控制器管理状态栏样式/隐藏状态的,记得确保 Info.plist 里的 UIViewControllerBasedStatusBarAppearance 设置为 YES,或者根据需求调整,避免出现冲突。

内容的提问来源于stack exchange,提问作者TomV

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 07:12:37