Modal UISplitViewController具有透明背景

时间:2016-10-04 15:15:27

标签: ios swift uisplitviewcontroller transparent

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

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

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您的<tr> <td> some data </td> </tr>是根视图控制器吗?如果没有,它会表现出奇怪的行为。每个Apple:

  

请注意

     

&#34; ...尽管可以在某些其他容器视图控制器中将拆分视图控制器安装为子级,但在大多数情况下不建议这样做。拆分视图控制器通常安装在应用程序窗口的根目录下。 ...&#34;

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

UISplitViewController

如果你想维护导航堆栈,你可以在两个导航控制器上调用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)

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

编辑:

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

  

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

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