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