如何以编程方式隐藏iOS 10中拆分视图控制器中的左视图控制器

时间:2017-08-05 17:04:29

标签: ios swift ipad

我正在使用Swift for iOS 10开发应用程序。我的应用程序的UI使用收件箱UISplitViewController。当我的应用程序以纵向方式在iPad上运行时,我希望左视图控制器弹出窗口在选择项目后自动隐藏。

我能够找到不再存在或弃用的使用方法的唯一答案。

更具体地说,我想在选择表格中的项目后隐藏下面屏幕截图左侧的视图。

Screenshot of app with menu visible.

1 个答案:

答案 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)
    }