以纵向模式拆分视图!

时间:2011-01-25 07:02:36

标签: ipad

Apple仅为横向提供分割视图,但不为纵向模式提供分割视图。有没有办法在纵向模式下实现splitview?

[splitViewController setHidesMasterViewInPortrait:NO];

这会奏效。但是这个API没有记录(私人)。

谢谢,
Manjunath

6 个答案:

答案 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
    }    

DOC: https://developer.apple.com/library/ios/documentation/UIKit/Reference/UISplitViewController_class/index.html#//apple_ref/occ/instp/UISplitViewController/preferredDisplayMode

我注意到的一件事是,只要有足够的空间,它就会尝试基于preferredDisplayMode布局splitviewcontroller。否则它将选择适合内容的显示模式。我已经使用过它,它可以在纵向和横向上为我提供我想要的风格。

答案 3 :(得分:2)

看看这个MGSplitViewController

这是一个自定义的分割视图控制器,具有各种有用的增强功能。当然,你可以用肖像显示主视图。

答案 4 :(得分:2)

答案 5 :(得分:0)

有时回来我试图做类似的事情。在尝试了Matt的代码之后,并且未能尝试创建一个类别我意识到执行此操作的唯一方法(以Apple不拒绝您的应用程序的方式)是使用两个自定义视图。请参阅this问题。