在单独的UIWindow中锁定状态栏方向

时间:2017-04-07 20:55:07

标签: ios uiwindow

我有一个案例需要在我的应用程序中创建一个新的UIWindow。我还希望新窗口以纵向方式锁定,但我的应用程序的原始窗口应 NOT 以纵向锁定。

我正在设置我的新窗口:

newWindow = UIWindow(frame: CGRect(x: 0, y: 0, width: view.bounds.width, height: view.bounds.height))
newWindow?.rootViewController = ViewController2()
newWindow?.makeKeyAndVisible()

ViewController2锁定方向:

override var shouldAutorotate: Bool {
    return false
}

问题是,当显示新窗口并且用户旋转设备时,应用程序本身将以纵向锁定,但状态栏将旋转为横向模式: enter image description here

如何确保状态栏还在新窗口中锁定了肖像?

如果有人想在一个简单的项目中看到这个:https://github.com/rajohns08/StatusBar

1 个答案:

答案 0 :(得分:1)

请将此文档用于解决您的问题 https://developer.apple.com/reference/uikit/uiinterfaceorientationmask

或 解决方案在app委托中。您可以分别处理每个窗口支持的方向:

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
   // check, which window is asking and return the mask
   return UIInterfaceOrientationMaskAllButUpsideDown;
}