在 Universal iOS 应用中使用 Storyboard 的 UISplitView

UISplitView using Storyboard in Universal iOS app

我在我的通用 iOS 应用程序中使用 UISplitView,而且我只有一个故事板。我能够实现所有功能,但很少有,

在 iPad 中,我希望主视图始终可见,因此我使用了委托,

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

但主视图仍然隐藏在纵向模式下。同样在 iPhone 中,应用程序启动时带有带有导航后退按钮的 DetailView。我希望 iPhone 应用程序首先显示 MasterView。我已经查看了几个示例,例如 this, or this,但没有解决我的问题。

我正在使用 Objective C 而不是 Swift。

看看documentation for UISplitViewControllerDelegate

- (BOOL)splitViewController:(UISplitViewController *)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation

已在 iOS8 中弃用,您必须改为设置 preferredDisplayMode

controller.preferredDisplayMode = UISplitViewControllerDisplayModeAllVisible;

至于 iPhone 应用程序显示细节视图控制器而不是主视图控制器,实现 UISplitViewControllerDelegate 方法:

- (BOOL)splitViewController:(UISplitViewController *)splitViewController collapseSecondaryViewController:(UIViewController *)secondaryViewController ontoPrimaryViewController:(UIViewController *)primaryViewController {
    return YES;
}

您可以像这样通过用户运行时变量设置此 属性:

Key Path                Type      Value
preferredDisplayMode    Number      2 

这是首选显示模式的值

case automatic = 0
case primaryHidden = 1
case allVisible = 2
case primaryOverlay = 3