补充: 我看到我的问题经常被查看而没有投票,所以我决定你们没有得到你搜索的内容。将您重定向到对如何处理 iOS6 中的方向更改有非常好的答案 的问题
对方向变化的具体要求: 限制旋转
欢迎点赞:)
我从 Master Detail 模板创建了一个新项目,并尝试以横向启动它。如你所知
- (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;
}
如您所见,我正在尝试以首选方法返回横向,但它从未被调用。ps 文档指出:
讨论 当视图控制器全屏呈现时,系统会调用此方法。当您的视图控制器支持两个或多个方向但内容在其中一个方向中显示最佳时,您可以实现此方法。
如果您的视图控制器实现了此方法,那么当呈现时,它的视图会以首选方向显示(尽管稍后可以将其旋转到另一个受支持的旋转)。如果不实现此方法,系统将使用状态栏的当前方向呈现视图控制器。
所以,问题是:为什么 prefferredOrientation 方法永远不会被调用?以及我们应该如何处理不同控制器中的不同方向?谢谢!PS不要将问题标记为重复。我已经调查了所有类似的问题,但他们没有我的答案。