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

时间:2016-11-16 23:11:09

标签: ios swift statusbar

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

这是我添加的 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)

1 个答案:

答案 0 :(得分:2)

shouldAutorotate 应该在rootViewController中,因为顶级viewController会将它放到它的所有子控制器