强制 UIViewController 仅以横向模式显示

发布于 2024-10-23 13:41:53 字数 82 浏览 4 评论 0原文

我的应用程序以纵向模式运行,但我只想以横向模式显示一个屏幕,因为它是图表。我应该向 uiviewcontroller 添加什么以强制其仅进入横向模式?

My app runs in portrait mode, but i want to show one screen in landscape mode only as it is a chart. What do i add to my uiviewcontroller to force it into landscape mode only?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

锦欢 2024-10-30 13:41:53

很抱歉,这个答案会很简短:如果您使用的是 UINavigationController,则不能。因此@jer 给出的答案是不正确的。苹果文档指出:

UITabBarController 或 UINavigationController 中的所有子视图控制器在通用方向集上不一致。

我最近在赏金中回答了这个问题,但我的应用程序在此过程中被拒绝。请在此处阅读:如何将某些视图的自动旋转限制为单一方向,同时允许其他视图的所有方向?

唯一的解决方案你所要做的就是扔掉 UINavigationController 并用你自己的东西重写它。

I'm sorry but this answer will be very short: If you're using the UINavigationController, you can't. The answer @jer gives is therefore incorrect. The Apple documentation states:

All child view controllers in your UITabBarController or UINavigationController do not agree on a common orientation set.

I recently had this question answered on a bounty and my app rejected in the process. Read up on that here: How to constrain autorotation to a single orientation for some views, while allowing all orientations on others?

The only solution you have, is to throw away the UINavigationController and rewrite it with something of your own.

逆光下的微笑 2024-10-30 13:41:53

通过以模态方式呈现和关闭视图控制器,您可以强制确定方向。将动画设置为“NO”,您甚至可以在用户没有意识到它发生的情况下执行此操作。

您可以在阅读更多关于乔希的回答设置 iPhone 方向的记录方法?

我认为这有点黑客,但我已经成功地使用此前提实现了代码来强制任何设备方向。

By presenting and dismissing a view controller modally you can force an orientation. Set animations to "NO" and you can do this without the user even realizing it occurred.

You can read more about this Josh's answer on Is there a documented way to set the iPhone orientation?

I consider it a bit of a hack, but I've successfully implemented code using this premise to force any device orientation.

荒岛晴空 2024-10-30 13:41:53

您实现 shouldAutorotateToInterfaceOrientation: 并让它仅对 UIInterfaceOrientationIsLandscape(param) 返回 YES,其中 param 是您为该方法声明的参数。

这将支持横向左和横向右,而不是将您锁定为仅一种横向方向。

You implement shouldAutorotateToInterfaceOrientation: and have it return only YES for UIInterfaceOrientationIsLandscape(param) where param is the parameter you declared for the method.

This will support landscape left and landscape right, instead of locking you to only one landscape orientation.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文