我需要在我的应用程序中支持所有界面方向掩码。 某些视图控制器不应该自动旋转(它仅支持纵向方向),但应用程序仍需要支持所有方向。 Expected result
我尝试在UINavigationController中设置shouldAutorotate = true; supportedInterfaceOrientations = All
,在根视图控制器中设置shouldAutorotate = false; supportedInterfaceOrientations = Portrait
。但它没有用。
答案 0 :(得分:0)
您可以在仅支持纵向模式的viewControllers中使用它
override func shouldAutorotate() -> Bool {
if (UIDevice.currentDevice().orientation == UIDeviceOrientation.Portrait ||
UIDevice.currentDevice().orientation == UIDeviceOrientation.PortraitUpsideDown ||
UIDevice.currentDevice().orientation == UIDeviceOrientation.Unknown) {
return true;
} else {
return false;
}
}
override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
return UIInterfaceOrientationMask.Portrait
}
答案 1 :(得分:0)
由于每个视图控制器都支持不同的方向,您可以这样做:
1)在项目的“常规”选项卡中,选择您需要应用程序支持的方向。 for reference click here
2)现在,在每个视图控制器中添加以下代码:
- (UIInterfaceOrientationMask) supportedInterfaceOrientations {
return UIInterfaceOrientationMaskPortrait;
}
在此方法中返回您想要的特定视图控制器的方向。
答案 2 :(得分:0)
您必须按照以下步骤设置Xcode设置以处理旋转:
项目>目标>一般>部署信息>设备方向> (复选标记)人像
希望这对你有所帮助。