我正在使用Swift for iOS 10开发应用程序。我的应用程序的UI使用收件箱UISplitViewController。当我的应用程序以纵向方式在iPad上运行时,我希望左视图控制器弹出窗口在选择项目后自动隐藏。
我能够找到不再存在或弃用的使用方法的唯一答案。
更具体地说,我想在选择表格中的项目后隐藏下面屏幕截图左侧的视图。
答案 0 :(得分:1)
首先,确保您从应用代理设置中引用了UISplitViewController
。 E.g。
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)
}