以编程方式在 UISplitViewController 中显示滑过主视图
Programatically show the slide over master view in a UISplitViewController
当在 iPad 上以纵向模式使用 UISplitViewController
时,我得到了我的详细视图控制器的全屏视图,这是预期的。我可以从左侧滑动并显示主视图幻灯片,如何以编程方式触发此幻灯片?
似乎没有简单的方法可以做到这一点,但我发现使用以下代码具有预期的行为:
UIView.animate(withDuration: 0.2, animations: {
self.splitViewController?.preferredDisplayMode = .primaryOverlay
})
确保在横向旋转时将显示模式设置回 automatic
,以便它始终像默认情况一样显示大纲和细节:
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
super.viewWillTransition(to: size, with: coordinator)
coordinator.animate(alongsideTransition: { _ in
if UIDevice.current.orientation == .landscapeLeft || UIDevice.current.orientation == .landscapeRight {
self.splitViewController?.preferredDisplayMode = .automatic
}
}, completion: nil)
}
当在 iPad 上以纵向模式使用 UISplitViewController
时,我得到了我的详细视图控制器的全屏视图,这是预期的。我可以从左侧滑动并显示主视图幻灯片,如何以编程方式触发此幻灯片?
似乎没有简单的方法可以做到这一点,但我发现使用以下代码具有预期的行为:
UIView.animate(withDuration: 0.2, animations: {
self.splitViewController?.preferredDisplayMode = .primaryOverlay
})
确保在横向旋转时将显示模式设置回 automatic
,以便它始终像默认情况一样显示大纲和细节:
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
super.viewWillTransition(to: size, with: coordinator)
coordinator.animate(alongsideTransition: { _ in
if UIDevice.current.orientation == .landscapeLeft || UIDevice.current.orientation == .landscapeRight {
self.splitViewController?.preferredDisplayMode = .automatic
}
}, completion: nil)
}