如何以编程方式在iOS 10中的分屏视图控制器中隐藏左视图控制器
问题描述:
我正在iOS版Swift中开发应用程序。我的应用程序的UI使用收件箱UISplitViewController。当我的应用以纵向方向在iPad上运行时,我希望左侧视图控制器弹出窗口在选择某个项目后自动隐藏。如何以编程方式在iOS 10中的分屏视图控制器中隐藏左视图控制器
唯一的答案我已经能够找到使用方法不再存在或被弃用。
更具体地说,一旦表格中的项目被选中,我想隐藏下面屏幕截图左侧的视图。
答
首先,确保你有一个从应用程序的委托安装到你的UISplitViewController
参考。例如。
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
let splitViewController = window!.rootViewController as! UISplitViewController
splitViewController.preferredDisplayMode = UISplitViewControllerDisplayMode.primaryOverlay
let navigationController = splitViewController.viewControllers[splitViewController.viewControllers.count-1] as! UINavigationController
splitViewController.delegate = self
}
然后在你为你的表视图didSelectRowAtIndexPath
方法,添加类似:
if UIApplication.shared.statusBarOrientation == .portrait {
splitViewController?.preferredDisplayMode = .primaryHidden
}
要动态:
if UIApplication.shared.statusBarOrientation == .portrait {
UIView.animate(withDuration: 0.3, animations: {
self.splitViewController?.preferredDisplayMode = .primaryHidden
}, completion: nil)
}
我接受了这个作为解决方案,因为它做什么我问。但是,如果“主要”视图可以滑出视图而不是消失,那将会很好。 –
好点 - 用动画代码更新了答案。 – Tom