当前位置: 首页 > 知识库问答 >
问题:

在iOS 8应用程序中隐藏状态栏

蒋何平
2023-03-14

我试过了

[[UIApplication sharedApplication] setStatusBarHidden:YES]; 

这没有任何作用。

我已经查看了我的信息。plist用于“基于视图控制器的状态栏外观”的文件,但它不在那里。

如何在我的Xcode 6应用程序中隐藏屏幕顶部的白色状态栏(带有时钟和电池电量)?谢谢!

共有3个答案

翟宾实
2023-03-14

您可以隐藏状态栏,而无需编写一行代码,它只需要两个条目进入info.plist第一个是

“查看基于控制器的状态栏外观”设置为NO

第二个是

“状态栏最初隐藏”设置为“是”

巩衡
2023-03-14
  1. 转到Info.plist文件
  2. 将鼠标悬停在其中一行上,将显示()和(-)按钮。
  3. 点击加号按钮添加新密钥
  4. 输入以大写字母V开头,第一个选择将自动是查看基于控制器的状态栏外观。将其添加为KEY。
  5. 将值设置为“否”
  6. 转到您的AppEnderate. m for Objective-C(用于快速语言:AppDelegate.swift)
  7. 添加代码,在方法里面

对于Objective-C:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [application setStatusBarHidden:YES];

    return YES;
}

对于斯威夫特:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey:Any]?) -> Bool {
    application.statusBarHidden = true

    return true
}

完成!运行你的应用程序,不再显示状态栏!

戚飞虎
2023-03-14

除非有plist条目,否则需要在每个视图控制器上重写此方法

目标-C

-(BOOL)prefersStatusBarHidden{
    return YES;
}

斯威夫特2

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

斯威夫特3

override var prefersStatusBarHidden: Bool {
    return true
}

不要忘记设置(如果通过调用presentViewController:animated:completion:method来呈现视图控制器):

目标-C

vcToBeShownWithoutStatusbar.modalPresentationCapturesStatusBarAppearance = YES;

敏捷的

vcToBeShownWithoutStatusbar.modalPresentationCapturesStatusBarAppearance = true

文档:https://developer.apple.com/reference/uikit/uiviewcontroller/1621453-modalpresentationcapturesstatusb

如果您从某个容器视图控制器更改状态栏(例如。UINavigationControllerUIViewController与子视图控制器)并且您想更改负责状态栏的视图控制器,您应该使用child ViewControlllerForStatusBarHidden:属性。例如:

设置第一视图控制器实例始终负责状态栏管理

目标-C

- (UIViewController *)childViewControllerForStatusBarHidden {
    return childViewControllers.first; // or viewControllers.first
}

斯威夫特2

override var childViewControllerForStatusBarHidden() -> UIViewController? {
    return childViewControllers.first // or viewControllers.first
}

斯威夫特3

override var childViewControllerForStatusBarHidden: UIViewController? {
    return childViewControllers.first // or viewControllers.first
}

设置容器视图控制器负责状态栏管理

目标-C

- (UIViewController *)childViewControllerForStatusBarHidden {
    return nil;
}

斯威夫特2

override func childViewControllerForStatusBarHidden() -> UIViewController? {
    return nil
}

斯威夫特3

override var childViewControllerForStatusBarHidden: UIViewController? {
    return nil
}

文档:https://developer.apple.com/documentation/uikit/uiviewcontroller/1621451-childviewcontrollerforstatusbarh

 类似资料:
  • 我正在制作一个Android锁屏应用程序。我的问题是状态栏。我在Androidanifest.xml上写了这一行。Android:主题="@Android:风格/主题。NoTitleBar。全屏"但是用户可以在没有应用程序的情况下滚动状态栏并解锁手机。那么如何完全隐藏状态栏呢?

  • 我想这叫做状态栏?有电表、时钟等的那个花了我很长时间才“隐藏”出来,但它所做的只是隐藏图标,它仍然占据着房地产市场。因此,当wkwebview向上滚动时,它会在状态栏下滚动,看起来很糟糕。 我要么想完全隐藏状态栏,要么让它在那里,但块的颜色,所以它下什么也看不见。我已经看了100多个关于xcode、info.plist、appdelegate设置、viewcontroller设置、navigati

  • 我的iPhone应用程序要求状态栏始终隐藏。这通常很容易做到,如果我只在iPhone上运行应用程序,它就可以工作。然而,如果我在iPad上运行该应用程序,状态栏仍然会出现在内容的顶部。那么,无论我的iPhone only应用程序运行在什么设备上,我如何确保状态栏都是隐藏的呢?我目前正在代码中执行以下操作: 为每个视图控制器调用此方法(我实际上在UIViewController上创建了一个类别,它可

  • 问题内容: 我想删除屏幕顶部的状态栏。 这不起作用: 我也尝试过: 问题答案: 您确实应该在视图控制器上实现preferredsStatusBarHidden: Swift 3及更高版本

  • 问题内容: 如何在ios 9中隐藏状态栏? 现在不推荐使用: 问题答案: 斯威夫特3 更改为 删除 更改为 之所以可行,是因为计算变量具有getter函数,因此您之前实现的函数只是变成了getter函数 2016年起:简单的事物 在您的info.plist上,为statusBar隐藏添加以下两个属性 查看基于控制器的状态栏外观(布尔值:否) 状态栏最初是隐藏的(布尔值:是) 按来源 要么 旧答案!

  • 如何在状态栏中隐藏通知图标。(请以编程方式)。 我要将此添加到我的应用程序中。