gpt4 book ai didi

ios - 强制 View Controller 的方向

转载 作者:行者123 更新时间:2023-11-28 09:07:26 27 4
gpt4 key购买 nike

关于这个主题已经写了很多,我想知道为什么我只找到“某种黑客”来实现它。

别误会,我有针对 iOS 6 和 7 的解决方案以及针对 iOS 8 的另一个解决方案。

这似乎是一个基本要求,在使用方向时,我无法相信,没有“推荐的方式”。

这是(常见的?)场景:您的 iPhone 应用程序几乎总是希望以纵向模式运行。只有少数 ViewController 想要支持横向,例如图像查看器或视频查看器。

因此您需要在项目设置中允许所有方向并决定 View Controller 基础,每个 View Controller 基础支持哪些方向。

有了 UINavigationController 和 UITabBarController 上的类别,您只需将所需的事件路由到您的 View Controller ,以便让它们决定它们“更喜欢”哪个方向。

除非您当前处于某个方向,否则所有这一切都很好,而您正在导航到的 View Controller 不支持该方向,例如作为弹出或推送导航的结果。

现在我们需要“强制”方向。不知何故,这总是需要某种破解。在我模态地放置一个空的 View Controller 并立即将其关闭之前,这触发了方向变化。丑陋...现在在 iOS 8 中它不那么丑陋了,但仍然有些硬编码并且有点使用未记录方法的味道:UIDevice.currentDevice().setValue(NSNumber(integer: UIInterfaceOrientation.Portrait.rawValue), forKey: "orientation")

现在我想知道,这一定是一件很常见的事情。为什么没有解决方案,感觉像是“苹果提供的方式”??

拥有某种支持纵向和横向的图像和视频“查看器”,而其他任何东西都只支持纵向,这似乎是一种常见的设置,包括 Apple 工程师在内的每个人都必须遇到同样的问题,在横向模式下点击图像查看器中的“后退”按钮然后返回到上一个 View 时,必须在 viewDidAppear 上强制为“纵向”,因此用户“被迫”将设备旋转回纵向。

我是不是忽略了一些明显的东西??如果没有这些强制设备方向的“黑客”,我无法获得适当的解决方案。

最佳答案

只有当导航 Controller 堆栈中包含的 View Controller 需要不同的行为时,这才会成为一个问题。 Apple 可能会问为什么要这样做 - 对于您上面提到的“查看器”示例,总是有其他选项,例如 presentViewController:animated:

关于ios - 强制 View Controller 的方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30456456/

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