【发布时间】:2011-01-25 07:02:35
【问题描述】:
Apple 仅为横向模式提供拆分视图,而不为纵向模式提供。有没有办法在纵向模式下实现拆分视图?
[splitViewController setHidesMasterViewInPortrait:NO];
这会奏效。但是这个 API 没有记录(私有)。
谢谢,
曼朱纳特
【问题讨论】:
标签: ipad
Apple 仅为横向模式提供拆分视图,而不为纵向模式提供。有没有办法在纵向模式下实现拆分视图?
[splitViewController setHidesMasterViewInPortrait:NO];
这会奏效。但是这个 API 没有记录(私有)。
谢谢,
曼朱纳特
【问题讨论】:
标签: ipad
对于 iOS5+,
转到您的detailViewController。你的detailViewController 应该有UISplitViewControllerDelegate。只需将此代码放入:
- (BOOL)splitViewController:(UISplitViewController *)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation{
return NO;
}
这样就可以了。它是公共 API。
【讨论】:
我在这里的一点贡献。
字节的答案在 iOS 7 之前是正确的。从 iOS 8 开始,您应该使用 preferredDisplayMode
例如,要以纵向模式显示两个视图控制器,请执行以下操作:
self.splitViewController.preferredDisplayMode = UISplitViewControllerDisplayModeAllVisible;
希望这会有所帮助!
【讨论】:
在 iOS 8 xcode 6+ 中更新
if let splitVCExists = self.splitViewController{
splitVCExists.preferredDisplayMode = UISplitViewControllerDisplayMode.AllVisible
}
我确实注意到的一件事是,只要有足够的空间,它就会尝试基于preferredDisplayMode 布局splitviewcontroller。否则它将选择适合内容的显示模式。我用过它,它让 VC 在纵向和横向上都呈现出我想要的样子。
【讨论】:
它是一个定制的拆分视图控制器,具有各种有用的增强功能。当然,您可以纵向显示主视图。
【讨论】:
【讨论】:
以前我试图实现类似的目标。在尝试了 Matt 的代码并尝试创建类别失败后,我意识到这样做的唯一方法(以 Apple 不会拒绝您的应用程序的方式)是使用两个自定义视图。参考this问题。
【讨论】: