我已经阅读了很多关于 SO 的答案,但我似乎无法在 iOS7 上进行自动旋转。
我只需要一个视图控制器来旋转,所以我不想在我的 Info.plist 中设置旋转设置。
据我了解 Apple 的文档,单个视图控制器可以通过简单地覆盖两种方法来覆盖全局旋转设置(来自 Info.plist)。Info.plist 设置为只允许 Portrait,我的视图控制器实现了以下方法:
- (NSUInteger)supportedInterfaceOrientations
{
NSLog(@"%s", __PRETTY_FUNCTION__);
return UIInterfaceOrientationMaskAllButUpsideDown;
}
- (BOOL)shouldAutorotate
{
NSLog(@"%s", __PRETTY_FUNCTION__);
return true;
}
我在旋转时看到那些 NSLog 语句,但没有旋转。
如果我使用正确的旋转设置配置 Info.plist,我的视图将旋转,但如果我尝试依赖我的视图控制器则不会。
不确定是否重要,但我尝试旋转的视图来自使用自动布局的 .xib。
此外,我的 ViewController 以模态方式呈现并包含在导航控制器中。我试过只展示视图控制器本身,但这是行不通的。我还尝试向 UINavigationController 添加一个类别,以从它的 topViewController 获取它的自动旋转方向。