1

我是 iOS swift 场景的新手,我希望您能够帮助我找到解决方案,或者让我找到实现此目标的替代路线。

这是我的应用程序接口结构图

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

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

您可以看到紫色背景消失了,现在 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)
}

我一直在寻找解决方案一段时间,但我似乎无法弄清楚。如果您能帮助解决这个问题或帮助找到解决方法并实现相同的目标,我会很棒。请帮帮我。

先感谢您。如果有什么我可以做的来澄清任何事情,请告诉我。

4

0 回答 0