Swift iOS 14横向显示状态栏

Swift iOS 14横向显示状态栏,swift,uikit,Swift,Uikit,由于iOS 8,默认情况下状态栏隐藏在横向视图中,我希望使其可见。我创建了一个新的空项目,并尝试了其他主题中的一些内容,但这些都不起作用: 我尝试的第一个解决方案(我还将UIViewControllerBasedStatusBarAppearance键添加到Info.Plist,并将其设置为true或false进行测试): 我尝试的第二个解决方案是在App委托中使用不推荐的setStatusBarHidden方法 在这两种情况下,状态栏都不会出现在横向视图中。有什么方法可以看到它吗?您的代码是正

由于iOS 8,默认情况下状态栏隐藏在横向视图中,我希望使其可见。我创建了一个新的空项目,并尝试了其他主题中的一些内容,但这些都不起作用:

  • 我尝试的第一个解决方案(我还将
    UIViewControllerBasedStatusBarAppearance
    键添加到Info.Plist,并将其设置为true或false进行测试):
  • 我尝试的第二个解决方案是在App委托中使用不推荐的setStatusBarHidden方法
  • 在这两种情况下,状态栏都不会出现在横向视图中。有什么方法可以看到它吗?

    您的代码是正确的(这是您在新的香草iOS应用程序项目中所需要的全部):

    问题是,这只能通过iOS 12实现。在iOS 13及更高版本中,运行时停止解释
    false
    值,以允许您覆盖iPhone上横向视图中状态栏的隐藏。类似地,调用
    application.setStatusBarHidden
    无法显示横向中的状态


    这可能是iOS 13中引入的UIWindowScene体系结构的副作用。或者,它可能是为了让所有iPhone型号都能以相同的方式运行(带或不带挡板)。

    iOS 13中的这一变化也在
    import UIKit
        
    class ViewController: UIViewController {
        
        override func viewDidLoad() {
            super.viewDidLoad()
            // Do any additional setup after loading the view.
            setNeedsStatusBarAppearanceUpdate()
        }
            
        override var prefersStatusBarHidden: Bool {
            return false
        }
    }
    
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        application.setStatusBarHidden(false, with: .none)
        // Override point for customization after application launch.
        return true
    }
    
    override var prefersStatusBarHidden: Bool {
        return false
    }