状态栏在仅纵向视图中旋转后为横向
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 会将它转发给它的所有子控制器
我已允许我的 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 会将它转发给它的所有子控制器