状态栏在仅纵向视图中旋转后为横向

Status bar is landscape after rotation in only portrait view

我已允许我的 swift 应用程序中的所有 viewController 处于纵向模式。我以编程方式执行此操作,因为某些 viewController 包含我想同时以横向和纵向模式播放的视频。我的问题是,当我旋转设备时,视图保持纵向模式(这就是我想要的),但设备的状态栏显示为横向模式。

这是我在 Swift 3 中添加的代码,用于使视图处于唯一的纵向模式:

override var shouldAutorotate: Bool {
    return false
}

override var supportedInterfaceOrientations : UIInterfaceOrientationMask {
    return UIInterfaceOrientationMask.portrait
}

有什么帮助吗?

编辑: 在我的 AppDelegate 上,我指定了我的初始视图:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    self.window = UIWindow(frame: UIScreen.main.bounds)
    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    let initialViewController = storyboard.instantiateViewController(withIdentifier: "firstViewController")
    self.window?.rootViewController = initialViewController
    self.window?.makeKeyAndVisible()
    return true
}

然后在我的 firstViewController 中,我可以通过单击按钮转到另一个视图,如下所示:

let controller = self.storyboard?.instantiateViewController(withIdentifier: "secondViewController") as! secondViewController
        self.present(controller, animated: false, completion: nil)

或者我在子视图中显示一些细节(点击按钮后打开):

let vc = self.storyboard?.instantiateViewController(withIdentifier: "detailViewController") as! DetailViewController
addChildViewController(vc)
view.addSubview(vc.view)
vc.didMove(toParentViewController: self)

shouldAutorotate 应该在 rootViewController 中,因为顶部 viewController 会将它转发给它的所有子控制器