32

我想在我的 iPad 应用程序上使用纵向的左侧菜单(例如 iPad 设置)获取 SplitView。现在在纵向上,我有一个全屏内容视图,并且在 NavigationBar 上有一个按钮,其中包括一个带有左侧菜单的弹出窗口。

4

8 回答 8

50

这是你需要的魔法:

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

- (BOOL)splitViewController: (UISplitViewController*)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation  __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_5_0);
{
    return NO;
}
于 2011-11-08T23:00:46.877 回答
11

您绝对应该看看 Matt Gemmell 的MGSplitViewController

MGSplitViewController 是 UISplitViewController 的开源替代品,具有各种有用的增强功能。

于 2010-09-09T14:24:21.180 回答
9

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

[splitViewController setHidesMasterViewInPortrait:NO];

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

于 2010-04-13T17:38:51.063 回答
8

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

于 2010-04-23T00:23:36.290 回答
6

正如 ccwasden 所说,自 iOS8 起shouldHideViewController已弃用。在 Objective-C 中,使用...

splitViewController.preferredDisplayMode = UISplitViewControllerDisplayModeAllVisible;
于 2014-09-17T19:13:01.157 回答
5

Since shouldHideViewController is deprecated in iOS8, you will need to use this instead (Swift):

splitViewController.preferredDisplayMode = UISplitViewControllerDisplayMode.AllVisible
于 2014-09-14T23:25:16.737 回答
4

有些人在我们的博客上问过我同样的问题,我找到了解决方案。您将在我的博客文章末尾找到它您的第一个拆分视图控制器 | 海边

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

干杯,安德烈亚斯

于 2010-04-18T19:03:29.993 回答
3

在斯威夫特:

splitViewController.preferredDisplayMode = .allVisible

于 2016-03-02T05:16:17.433 回答