iPad SplitViewController与纵向模式菜单,如设置应用程序

时间:2010-04-13 17:19:42

标签: ipad uisplitviewcontroller

我想在我的iPad应用程序中使用我的左侧菜单以纵向方式获取SplitView,例如iPad设置。目前在纵向方向上我有一个全屏内容视图,我在NavigationBar上有一个按钮,其中包含一个带左侧菜单的弹出窗口。

8 个答案:

答案 0 :(得分:49)

这是你需要的魔力:

此方法位于UISplitViewControllerDelegate,可在iOS 5.0上使用

- (BOOL)splitViewController: (UISplitViewController*)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation  __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_5_0);
{
    return NO;
}

答案 1 :(得分:11)

你一定要看看Matt Gemmell的MGSplitViewController

  

MGSplitViewController是一个开放的   来源替代   UISplitViewController,有各种各样的   有用的增强功能。

答案 2 :(得分:9)

不幸的是,它是一种未记录的方法(即私有API)。

[splitViewController setHidesMasterViewInPortrait:NO];

我认为您需要创建一个自定义视图控制器,其中包含一个表视图(作为主控制器)和另一个通用子视图(作为详细控制器)来模拟它。

答案 3 :(得分:8)

获得所需效果的最简单方法可能是不使用UISplitView。相反,只需创建一个普通视图,在左侧放置一个表格视图,在右侧放置您的详细视图,然后适当地设置自动调整大小的内容,使所有内容在纵向和横向都看起来正确。

答案 4 :(得分:5)

由于iOS8中不推荐使用shouldHideViewController,因此您需要使用此代码(Swift):

splitViewController.preferredDisplayMode = UISplitViewControllerDisplayMode.AllVisible

答案 5 :(得分:5)

正如ccwasden所说,从{iOS}开始,shouldHideViewController已被弃用。在Objective-C中,使用......

splitViewController.preferredDisplayMode = UISplitViewControllerDisplayModeAllVisible;

答案 6 :(得分:4)

有些人在我们的博客上问了同样的问题,我找到了解决方法。您可以在我的博文Your first split view controller | Seaside的末尾找到它。

通常,您所要做的就是创建UISplitViewController的子类并覆盖方法willAnimateRotationToInterfaceOrientation: duration:,并在界面方向更改为纵向模式时调整主视图和详细视图。

干杯, 安德烈亚斯

答案 7 :(得分:2)

在斯威夫特:

splitViewController.preferredDisplayMode = .allVisible