第一次发帖,请原谅我,如果我没有在我的问题中提供正确的信息...
我正在创建一个应用程序(在swift中),我想支持所有屏幕的所有屏幕方向(并相应地设置在Xcode常规选项卡中)。有一个登录/启动屏幕,然后应用程序其余部分的根控制器是UINavigationController。
我的问题 - 即使设备处于横向,屏幕也会在任何segue上旋转回纵向,并且屏幕都支持横向! 这是segue的标准行为吗?如果是这样,我可以以某种方式阻止它吗? 要清楚 - 我只是希望屏幕旋转继续反映segue之后的设备方向 - 所有屏幕目前都支持所有方向。
我尝试将shouldAutorotate设置为给定屏幕/视图控制器返回false,并扩展UINavigationController以引用可见视图控制器的shouldautorotate()函数,如下所示:
extension UINavigationController {
public override func shouldAutorotate() -> Bool {
return visibleViewController!.shouldAutorotate()
}
}
这可以防止旋转远离segue上的(风景)设备方向,但当然如果用户旋转回到肖像,屏幕仍保持风景......
看起来这应该是非常简单的,但我无法找到任何信息或其他问题,只是关于限制允许的方向的问题(我只想让屏幕方向始终反映设备方向) ...
有一种想法 - 有没有办法检测是否在segue之后调用了shouldAutorotate函数?并且在这种情况下返回false,否则为真?
感谢任何帮助!
由于
丹
答案 0 :(得分:0)
将这两种方法添加到视图控制器中:
override func shouldAutorotate() -> Bool {
return false
}
override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
return UIInterfaceOrientationMask.Portrait
}