我允许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)
答案 0 :(得分:2)
shouldAutorotate 应该在rootViewController中,因为顶级viewController会将它放到它的所有子控制器