我想在我的 iPad 应用程序上使用纵向的左侧菜单(例如 iPad 设置)获取 SplitView。现在在纵向上,我有一个全屏内容视图,并且在 NavigationBar 上有一个按钮,其中包括一个带有左侧菜单的弹出窗口。
8 回答
这是你需要的魔法:
此方法在 UISplitViewControllerDelegate 中,可在 iOS 5.0 上使用
- (BOOL)splitViewController: (UISplitViewController*)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_5_0);
{
return NO;
}
您绝对应该看看 Matt Gemmell 的MGSplitViewController。
MGSplitViewController 是 UISplitViewController 的开源替代品,具有各种有用的增强功能。
不幸的是,这是一个未记录的方法(即私有 API)。
[splitViewController setHidesMasterViewInPortrait:NO];
我认为您需要创建一个自定义视图控制器,其中包含一个表视图(作为主控制器)和另一个通用子视图(作为细节控制器)来模拟这一点。
获得所需效果的最简单方法可能是不使用UISplitView
. 相反,只需创建一个普通视图,在其左侧放置一个表格视图,在右侧放置您的详细视图,然后适当地设置自动调整大小的内容,以使纵向和横向的一切看起来都正确。
正如 ccwasden 所说,自 iOS8 起shouldHideViewController
已弃用。在 Objective-C 中,使用...
splitViewController.preferredDisplayMode = UISplitViewControllerDisplayModeAllVisible;
Since shouldHideViewController
is deprecated in iOS8, you will need to use this instead (Swift):
splitViewController.preferredDisplayMode = UISplitViewControllerDisplayMode.AllVisible
有些人在我们的博客上问过我同样的问题,我找到了解决方案。您将在我的博客文章末尾找到它您的第一个拆分视图控制器 | 海边。
通常,您所要做的就是创建一个子类UISplitViewController
并覆盖该方法willAnimateRotationToInterfaceOrientation: duration:
,并在界面方向更改为纵向模式时调整您的主视图和详细视图。
干杯,安德烈亚斯
在斯威夫特:
splitViewController.preferredDisplayMode = .allVisible