我有一个用于导航的容器视图。 它的高度是屏幕高度的75%,在我的主导航控制器上我加载了这个容器,并且在这个容器中我加载了另一个控制器:
let storyboard = UIStoryboard(name: "Main", bundle: nil)
controller1 = storyboard.instantiateViewController(withIdentifier: "ViewController") as! ViewController
controller1.delegate=self
controller1.view.frame=ContainerView.bounds
ContainerView.addSubview(controller1.view)
addChildViewController(controller1)
controller1.didMove(toParentViewController: self)
此控制器覆盖所有屏幕,而不仅仅是其中的75%,在其后面我看到另一个容器 - 用作底栏,但它不应覆盖它。
在现实中,“容器”,涵盖“bar”。
答案 0 :(得分:1)
使用两个容器视图
创建的示例项目在这些视图中添加两个容器视图和两个不同的VC
链接 - https://github.com/iOS-Geek/ContainerViews.git
StoryBoard:
预期产出: -
可以使用多个容器视图和子视图尝试检查一次
在代码中更新了答案
let storyboard = UIStoryboard(name: "Main", bundle: nil)
controller1 = storyboard.instantiateViewController(withIdentifier: "ViewController") as! ViewController
controller1.delegate=self
controller1.view.frame=ContainerView.bounds
ContainerView.addSubview(controller1.view)
addChildViewController(controller1)
controller1.didMove(toParentViewController: self)
一切都很好但是这里需要添加一个属性,希望能解决你的子视图超出界限的问题
需要将translatesAutoresizingMaskIntoConstraints
设置为true
所以尝试使用代码
let storyboard = UIStoryboard(name: "Main", bundle: nil)
controller1 = storyboard.instantiateViewController(withIdentifier: "ViewController") as! ViewController
controller1.delegate=self
controller1.view.frame=ContainerView.bounds
ContainerView.addSubview(controller1.view)
addChildViewController(controller1)
controller1.view.translatesAutoresizingMaskIntoConstraints = true
controller1.didMove(toParentViewController: self)