对于一个视图强制方向为纵向,对于另一个视图强制方向为纵向

Force orientation to be Portrait for one view and both for another

我的设计是这样的:Menu -> App -> Back to Menu

我希望我的菜单是 'Portrait ONLY'。我的 AppView 可以是纵向和横向。

目前在我的 MenuController 中,我有:

override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
    return .Portrait
}

override func shouldAutorotate() -> Bool {
    return false
}

在我的 AppView 控制器中我有:

override func shouldAutorotate() -> Bool {
    return true
}

override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
    return UIInterfaceOrientationMask.All
}

但是,我的主菜单在各个方向旋转。我在这里缺少什么吗?谢谢!

是的,您还需要在 plist 中更改它。您更改项目目标中的 属性。转到目标,在常规选项卡中转到部署信息 - >设备方向...... 此外,您需要子类化 UINavigationController 并覆盖它:

-(NSUInteger)suppoertedInterfaceOrientations
{
return self.topViewController.supportedInterfaceOrientations;
}

这将确保导航显示的 viewController 是同步的