无法在iOS7中隐藏状态栏

270

我刚刚将我的iPhone 5 iOS 7升级到了第四个测试版。现在,当我从Xcode 5在这个iPhone上运行我的应用程序时,状态栏不会隐藏,尽管它应该隐藏。

无法正常工作:

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];

无法工作:

[UIApplication sharedApplication].statusBarHidden = YES;

无法登录苹果开发者论坛


15
不正确,我的回答涉及到Xcode并已向公众展示。说“如果你回答这个问题就违反了NDA”太笼统了...让开发人员自己决定吧;-) - Jake
可能是状态栏不会消失的重复问题。 - ekhumoro
如何在特定的ViewController中以编程方式隐藏状态栏? - bhavik
26个回答

1
我在我的项目中尝试了这里发布的所有选项,但它们都无法起作用。我认为可能与我更新了Xcode和iOS 7应用程序有关,并且某些设置已经出现问题。因此,我决定为此构建一个全新的项目,并简单地进行设置:“状态栏最初隐藏=是”和“基于视图控制器的状态栏外观=否”,如许多其他人所述,然后它正常工作(即没有状态栏)。

因此,如果您正在处理已从旧版本升级到iOS 7的项目,并尝试了所有其他选项,则建议您构建一个新项目。


我使用了同样的技术来最初确认我可以全局隐藏状态栏,对于每个屏幕,但由于我的应用程序是相当“时间为中心”的,我想在大多数屏幕上显示时间。只有一个屏幕我想要排除它出于各种原因。最终我使用了与您参数相反的方法:initially hidden=NO & VC-based status bar appearance=YES. 然后我不得不将(BOOL)prefersStatusBarHidden方法(返回YES)放入我想要隐藏的那个VC中。效果很好。我应该补充说明,我的应用程序仅适用于iOS7,出于其他原因。 - bobsmells

0

适用于Swift 2.0+ IOS 9

override func prefersStatusBarHidden() -> Bool {
return true
}

0

0

隐藏特定视图控制器的状态栏

- (BOOL)prefersStatusBarHidden {
    return YES;
}

设置应用程序状态栏隐藏:

  • 在 .plist 中将 View controller-based status bar appearance 设置为 NO,并在 application: didFinishLaunchingWithOptions: 中设置:[application setStatusBarHidden:YES];

    注意:setStatusBarHidden: 已弃用

或者

  • 在项目设置中 -> 通用选项卡 -> 部署信息

    勾选 Hide Status bar 框。


-1
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
application.statusBarHidden = YES;
return YES;
}

问题明确提到这种方法行不通,请在回答前仔细阅读问题。 - Borys Verebskyi
只要视图控制器的状态栏外观设置为NO,这是最干净的方法。 - Evan Ische

-7
我不确定为什么你“无法登录到苹果开发者论坛”,但是(在不违反保密协议的情况下),你也可以通过Xcode隐藏你的状态栏。这是你应用程序目标的通用设置。enter image description here

不,它运行得很好。论坛已经运行了一段时间。 - Jake

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接