我们以编程方式使用UISplitViewController
,而不使用Storyboard。我们希望达到拆分视图控制器的特定行为,即使我们已经尝试过各种设置组合,我们也无法做到这一点。我们想要的是:对于iPhone,我们希望首先显示主控制器(在我们的案例表中),并转换到细节控制器,因此它的行为类似于常规导航控制器。对于iPad纵向,我们想要与iPhone和横向相同的行为,我们希望并排显示主控制器和细节控制器。我们得到的最接近的是以下拆分视图控制器的设置:
preferredDisplayMode = .allVisible
func splitViewController(_ splitViewController: UISplitViewController, collapseSecondary secondaryViewController: UIViewController, onto primaryViewController: UIViewController) -> Bool {
return true
}
通过这样的设置,一切都可以按照我们想要的方式工作,除了:在iPad上,两个,主控制器和细节控制器并排可见,但我们希望这种行为仅适用于lanscape模式。对于iPad肖像,我们希望它的行为与iPhone完全相同,因此只有master才会显示(全屏),并且会转换为细节并返回。