ContainerView中嵌入的iOS7 SplitviewController不旋转

Posted

技术标签:

【中文标题】ContainerView中嵌入的iOS7 SplitviewController不旋转【英文标题】:iOS7 SplitviewController embedded in ContainerView does not rotate 【发布时间】:2013-12-22 23:27:58 【问题描述】:

我对 ios 和 Objective-C 还很陌生,但我正在尝试创建一个 iPad 应用程序,它的左侧有一个垂直标签栏,而拆分视图控制器占据了屏幕的其余部分。为了实现这一点,我在一个页面上放置了两个容器视图,然后将 splitview 控制器嵌入到正确的容器中。

这是我的故事板:

这在横向上可以正常工作,但是当我旋转到纵向时,拆分视图控制器不会正常旋转,这会弄乱整个布局。

正如预期的那样,这是横向的样子:

这是纵向的样子:

我尝试了各种方法,例如手动将 willHideViewController 和 willShowViewController 从容器转发到 splitview 控制器...

我有什么遗漏吗?或者更好的方式来实现我想要的布局?

【问题讨论】:

UISplitViewController 仅用作根视图控制器。可能有办法让它工作,但 Apple 肯定不希望你使用 UISplitViewController 作为根视图控制器以外的任何东西。 是的,我已经看到了。我想我希望有办法让它发挥作用? 你是如何在 RIGHT Container View 中显示 WHOLE SPLIT VIEW-CONTROLLER 的?请分享步骤@JimmyP 【参考方案1】:

发生的情况是,在纵向模式下,主视图控制器被转移到弹出框,该弹出框通常放置在屏幕外的细节视图控制器左侧。在您的情况下,您可以看到它也在左侧,但对于您的情况,这是不正确的行为。

实现拆分视图控制器的委托协议,特别是 splitViewController:shouldHideViewController:inOrientation: 并针对任何方向返回 NO

【讨论】:

请原谅我的无知,但是哪个类需要实现协议?容器视图控制器? @JimmyP 取决于您如何设置逻辑。它可以是容器,可以是主控,也可以是细节。我已经看过所有配置,它们都是有效的。由于您的拆分视图配置似乎是静态的,因此容器可能是一个好地方。

以上是关于ContainerView中嵌入的iOS7 SplitviewController不旋转的主要内容,如果未能解决你的问题,请参考以下文章

具有多个嵌入 segues 的 ContainerView

嵌入在 containerView 中的 PageViewController 显示前一个视图的小边距

ContainerView 内的嵌入式 UICollectionView - 关于旋转问题

Swift:如何将数据传递给嵌入在 ContainerView 中的 PageViewController?

NSInvalidUnarchiveOperationException 与 ContainerView

Java 嵌入数据引擎:从 SQLite 到 SPL