当嵌入自定义容器视图控制器和 UISplitViewController 时,内容位于导航栏下方

Content falls beneath navigation bar when embedded in custom container view controller and UISplitViewController

我正在使用 UISplitViewController 和 UIContainerView,如图所示。

显示这个的代码是:

self.slidingViewController.topViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"SplitContainerVC"];

很确定容器视图的自动布局是准确的。

为什么我的内容视图(搜索栏等)在 UINavigation bar 下方?请看附图

我已经删除了以下代码并且它的工作正常:

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

但是我需要上面的代码。这背后有什么问题?

从 iOS 8 开始,您应该使用 preferredDisplayMode。由于 shouldHideViewController 在 iOS8.

中已弃用

要以纵向模式显示两个视图控制器,请执行以下操作:

self.splitViewController.preferredDisplayMode = UISplitViewControllerDisplayModeAllVisible;

希望对您有所帮助!