Apple仅为横向提供分割视图,但不为纵向模式提供分割视图。有没有办法在纵向模式下实现splitview?
[splitViewController setHidesMasterViewInPortrait:NO];
这会奏效。但是这个API没有记录(私人)。
谢谢,
Manjunath
答案 0 :(得分:23)
对于iOS5 +,
转到detailViewController
。您的detailViewController
应该有UISplitViewControllerDelegate
。只需将此代码放入:
- (BOOL)splitViewController:(UISplitViewController *)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation{
return NO;
}
这样就可以了。它是公共API。
答案 1 :(得分:17)
我的贡献在这里。
Byte的答案在iOS 7之前是正确的。从iOS 8开始,你应该使用preferredDisplayMode
例如,要以纵向模式显示两个视图控制器,请执行以下操作:
self.splitViewController.preferredDisplayMode = UISplitViewControllerDisplayModeAllVisible;
希望这有帮助!
答案 2 :(得分:3)
在iOS 8 xcode 6+中更新
if let splitVCExists = self.splitViewController{
splitVCExists.preferredDisplayMode = UISplitViewControllerDisplayMode.AllVisible
}
我注意到的一件事是,只要有足够的空间,它就会尝试基于preferredDisplayMode布局splitviewcontroller。否则它将选择适合内容的显示模式。我已经使用过它,它可以在纵向和横向上为我提供我想要的风格。
答案 3 :(得分:2)
这是一个自定义的分割视图控制器,具有各种有用的增强功能。当然,你可以用肖像显示主视图。
答案 4 :(得分:2)
答案 5 :(得分:0)
有时回来我试图做类似的事情。在尝试了Matt的代码之后,并且未能尝试创建一个类别我意识到执行此操作的唯一方法(以Apple不拒绝您的应用程序的方式)是使用两个自定义视图。请参阅this问题。