补充: 我发现我的问题经常被查看但没有投票,所以我决定你们没有得到你们想要的答案。我将重定向您到一个真正提供了有关如何处理iOS6中方向更改的好答案的问题: 如何在iOS6中处理方向更改
对方向更改的具体要求如下: 限制旋转
欢迎点赞 :)
我从“主细节”模板创建了一个新项目,并尝试以横向方向开始它。 如您所知,
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
方法已被弃用,我们必须使用
- (NSUInteger)supportedInterfaceOrientations
和/或
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
以下是我的代码:
- (NSUInteger)supportedInterfaceOrientations {
NSLog(@"supported called");
return UIInterfaceOrientationMaskAll;//Which is actually a default value
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
NSLog(@" preferred called");//This method is never called. WHY?
return UIInterfaceOrientationLandscapeRight;
}
如您所见,我正在尝试返回首选方向的横向模式,但它从未被调用。 附:文档说明:
讨论 当视图控制器以全屏方式呈现时,系统将调用此方法。在您的视图控制器支持两个或更多方向但内容最适合其中一种方向时,您需要实现此方法。
如果您的视图控制器实现了此方法,则当呈现其视图时,该视图会显示为首选方向(虽然稍后可以将其旋转到另一个支持的方向)。如果您没有实现此方法,则系统使用状态栏当前的方向呈现视图控制器。
因此,问题是:为什么prefferredOrientation方法从未被调用?我们应该如何处理不同控制器的方向?谢谢! 备注:请勿将此问题标记为重复。我已经研究了所有类似的问题,但它们没有我的答案。