首页 文章

Modal UISplitViewController具有透明背景

提问于
浏览
0

我需要以模态方式呈现UISplitViewController(在iPhone和iPad上),它应该有一个透明的背景(我将添加模糊视图) . 在呈现UIViewController时我能够做到这一点,但它不适用于拆分视图控制器 . 我的拆分视图控制器有2个导航控制器 .

我的结果是主视图控制器具有黑色背景 .

谢谢您的帮助 .

1 回答

  • 1

    你的 UISplitViewController 是根视图控制器吗?如果没有,它会表现出奇怪的行为 . 每个Apple:

    注意“......虽然可以在某些其他容器视图控制器中将拆分视图控制器安装为子视图,但在大多数情况下不建议这样做 . 拆分视图控制器通常安装在应用程序窗口的根目录中 . “ .

    我已经使用了这个(从详细信息视图控制器调用,使用带有两个导航控制器的拆分视图控制器 . )此时我想重置导航堆栈:

    let firstVC = self.storyboard?.instantiateViewController(withIdentifier: "FirstViewController") as! FirstViewController
    let secondVC = self.storyboard?.instantiateViewController(withIdentifier: "SecondViewController") as! SecondViewController
        // Get a reference the the Master View nav controller
    let masterNav = self.splitViewController!.viewControllers[0] as! UINavigationController
        // Set desired VC's as nav stack RootViewControllers        
    self.navigationController?.setViewControllers([matchVC], animated: true)
    masterNav.setViewControllers([masterMatchTableView], animated: true)
    

    如果要维护导航堆栈,可以在两个导航控制器上调用 .pushViewController .

    如果您还在处理此问题,请发布一些代码,我很乐意看一下 .

    编辑:

    因此,您无法以模态方式呈现拆分视图控制器:https://developer.apple.com/library/content/documentation/WindowsViews/Conceptual/ViewControllerCatalog/Chapters/SplitViewControllers.html

    拆分视图控制器必须始终是您创建的任何接口的根 . 换句话说,您必须始终从UISplitViewController对象安装视图作为应用程序窗口的根视图 . 然后,拆分视图界面的窗格可能包含导航控制器,标签栏控制器或实现界面所需的任何其他类型的视图控制器 . 拆分视图控制器无法以模态方式显示 .

    我上面发布的代码段将同时显示主视图和详细视图 . 或者,您可以将新VC显示为详细信息视图,并将 UISplitViewController.preferredDisplayMode = .primaryHidden 设置为以模态方式显示单个VC .

相关问题