gpt4 book ai didi

iphone - 了解 iOS 6 界面方向变化

转载 作者:太空狗 更新时间:2023-10-30 03:11:56 29 4
gpt4 key购买 nike

添加:我看到我的问题经常在没有投票的情况下被查看,所以我决定你们不会得到你搜索的内容。将您重定向到有很好答案的问题 How to handle orientation changes in iOS6

方向变化的具体要求: Restricted rotation

欢迎投票:)


我从 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;
}

如您所见,我正在尝试以首选方法返回横向方向,但从未调用过。附:文档状态:

Discussion The system calls this method when presenting the view controller full screen. You implement this method when your view controller supports two or more orientations but the content appears best in one of those orientations.

If your view controller implements this method, then when presented, its view is shown in the preferred orientation (although it can later be rotated to another supported rotation). If you do not implement this method, the system presents the view controller using the current orientation of the status bar.

所以,问题是:为什么永远不会调用 preferredOrientation 方法?我们应该如何处理不同 Controller 中的不同方向?。谢谢!P.S 不要将问题标记为重复。我已经调查了所有类似的问题,但他们没有我的答案。

最佳答案

关于preferredInterfaceOrientationForPresentation

preferredInterfaceOrientationForPresentation 永远不会被调用,因为这不是一个“呈现的” View Controller 。这里不涉及“演示”。

“presented”和“presentation”并不是一些含糊不清的术语,意思是“出现”。这些是精确的技术术语,表示此 View Controller 通过调用 presentViewController:animated:completion: 发挥作用。换句话说,只有当这就是我们过去所说的“模态” View Controller 时,该事件才会到达。

好吧,您的 View Controller 不是模态视图 Controller ;它presentViewController:animated:completion:一起发挥作用。因此不涉及“表示”,因此 preferredInterfaceOrientationForPresentation 在这里无关紧要。

我对此非常明确,因为我认为很多人会像您一样感到困惑或误导。因此,也许这张便条会对他们有所帮助。

启动横向

在 iOS 6 中,Info.plist 中的“Supported Interface Orientations”键比以前更受重视。解决您进入所需方向的整体问题的方法是:

  1. 确保您的 Info.plist 中的“Supported Interface Orientations”列出所有您的应用永远被允许采用的方向。

  2. 确保所需的启动方向是“支持的界面方向”中的第一个

这就是它的全部。实际上,您不必将任何代码放入 Root View Controller 来管理初始方向。

关于iphone - 了解 iOS 6 界面方向变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12778636/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com