子视图控制器呈现模态视图控制器iOS Swift

时间:2018-04-10 21:00:47

标签: ios swift uiviewcontroller uikit uiview-hierarchy

我是iOS手机的新手,我希望你能帮助我找到解决方案,或者让我找到另一条路径来实现这一目标。

以下是我Application Interface Structure

的图表

所以,我有一个具有UIScrollView的ContainerVC,而UIScrollView里面有四个ChildVC。我的问题是当我从其中一个ChildVC,即具有UIScrollView的ContainerVC呈现ModalVC时 并且应用程序的背景完全从屏幕上消失,应用程序的背景变为黑色。 我认为发生这种情况是因为iOS认为ContainerVC不再被使用,因此当模式显示在ChildVC之上时,它会将其从层次结构中删除。

我希望能够拥有ContainerVC,它为应用程序和嵌入了ChildVC的UIScrollView提供了背景,即使ChildVC以模态方式呈现ModalVC,也始终可见。在呈现ModalVC之前,可以在屏幕的边缘(模态ahah)周围的ChildVC后面看到ContainerVC,一切都很好,但是当我触发点击事件并且我呈现模态时,这会改变。这是之前和之后: Before Tap Event>>> After Tap Event & ModalVC appears

你可以看到紫色背景现在已经消失,因为ModalVC已经呈现,虽然你看不到它,但我不能再滚动方向了,因为UIScrollView也不存在。

如何在不丢失ContainerVC及其内部UIScrollView的情况下从ChildVC呈现ModalVC?即从消失并保持视图层次结构

以下代码用于显示给定ChildVC的ModalVC。

func didTapCell(origin: String) {
            let modalVC = storyboard?.instantiateViewController(withIdentifier: "overlayModal") as! OverlayModalViewController
            let appDelegate = UIApplication.shared.delegate as! AppDelegate
            appDelegate.window?.rootViewController = self // i think this self has something to do with the background disappearing 
            modalVC.modalPresentationStyle = .overCurrentContext
            self.present(modalVC, animated: true, completion: nil)
}

我一直在寻找一段时间的解决方案,但我似乎无法解决这个问题。如果你可以帮忙解决这个问题或者帮助找到解决方法并实现同样目标的话,我会很高兴。请帮帮我。

提前谢谢你。如果有任何我可以澄清的事情,请告诉我。

0 个答案:

没有答案