首页 > 解决方案 > 使用 ContainerView 显示 UIViewController,其中自定义 Header 保持可见

问题描述

我正在使用父子视图方法。到目前为止,我能够显示我的子视图控制器的唯一方法是将它嵌套在我的警报控制器操作之一中。

func alertController() {
 let heading = UIAlertAction(title: "Heading", style: .default, handler: {(action) -> Void in let child = SceneSetupVC(); self.show(child, sender: self); print("Heading selected")
        })
        alertController.addAction(heading)

我在 viewDidAppear 方法中添加了子视图,如下所示:

override func viewDidAppear(_ animated: Bool) {
        alertController()
        let parent = SceneSetupParentVC()
          let child = SceneSetupVC()
          parent.view.addSubview(child.view)
          parent.addChild(child)
          child.didMove(toParent: parent)
        child.view.autoresizingMask = [.flexibleWidth, .flexibleHeight]
}

问题是当我从警报控制器中选择“标题”操作时,下一个视图确实会出现,但它完全覆盖了我的自定义标题,这甚至违背了拥有它的目的。我认为这可能是我通过使用“显示”来呈现视图控制器的方式,并且这样做是因为缺乏更好的术语而不是在我的容器视图所在的空白区域中推动视图“模态”。在此处输入图像描述

标签: iosswiftxcodeviewcontroller

解决方案


推荐阅读