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不旋转的主要内容,如果未能解决你的问题,请参考以下文章
嵌入在 containerView 中的 PageViewController 显示前一个视图的小边距
ContainerView 内的嵌入式 UICollectionView - 关于旋转问题
Swift:如何将数据传递给嵌入在 ContainerView 中的 PageViewController?