【发布时间】:2013-04-28 12:58:17
【问题描述】:
我认为这个问题现在应该已经被问了一百万次了,但我仍然找不到答案。
这是我的层次结构:UINavigationController -> UIViewController 1 ->(push)-> UIViewController 2
UINavigationController:支持所有可能的方向 UIViewController 1:只支持纵向 UIViewController 2:仅支持横向
如何将 UIViewController 1 锁定为仅纵向,同时将 UIViewController 2 锁定为仅横向?甚至可能吗?到目前为止,我看到的是 UIViewController 2 始终采用 UIViewController 1 的方向。
请注意,这仅适用于 iOS 6。
谢谢!
【问题讨论】:
-
试试这个它会为你工作:stackoverflow.com/questions/12520030/…
-
您找不到答案,因为它无法完成。尽管有以下所有答案,但 iOS 6 根本不支持您要求做的事情。iOS 6 允许响应用户旋转设备,但不允许强制旋转。在 iOS 6 中强制 旋转的唯一方法是使用呈现的视图控制器,而不是推送到导航控制器堆栈的视图控制器。
-
但是,您可以构建一个呈现的视图控制器,使其看起来就好像它是同一导航界面的一部分。并且由于呈现的视图控制器可以在呈现和关闭时强制旋转,这有效地解决了问题。例如,请参阅我的答案:stackoverflow.com/a/4103137/341994
-
我制作了一部电影来展示我的意思:youtu.be/O76d6FhPXlE 正如你所看到的,它有点看起来就像我正在将第二个视图推送到导航控制器上并且强制旋转。但实际上有两个导航控制器;第二个出现(模态),所以我可以在它出现和被关闭时强制旋转。
-
谢谢@matt。这完全解释了为什么我到目前为止所尝试的一切都不起作用。特别感谢您为详细解释甚至制作短片所做的努力。超级有帮助!!由于我无法将您的评论标记为已接受的答案,因此我只是对您的评论投了赞成票。
标签: ios xcode ios6 uinavigationcontroller orientation