繁体   English   中英

具有透明背景的模态UISplitViewController

[英]Modal UISplitViewController with transparent background

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

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

谢谢您的帮助。

您的UISplitViewController是根视图控制器吗? 如果没有,它可能会表现出奇怪的行为。 每个苹果:

注意

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

我已经使用了这一点(从Detail视图控制器调用,将Split View Controller与两个nav控制器一起使用。)这时,我想重置nav堆栈:

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。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM