我目前正在开发一个新功能,如下所示:
整个内容是一个容器视图,通过播放分段控件来更改内容。 我还有另外两个UIViewController(第一个和第二个内容)。
显然嵌入在导航控制器中。
我的问题是我无法放下分段控件,我的意思是在导航栏之外。
如果我把它关掉,它就会隐藏起来。
以下是我的主视图控制器的一些代码(包含容器视图的代码):
private func addViewControllerAsChildViewController(childViewController: UIViewController) {
view.addSubview(childViewController.view)
childViewController.view.frame = view.bounds
childViewController.view.autoresizingMask = [.flexibleWidth, .flexibleHeight]
}
private func removeViewControllerAsChildViewController(childViewController: UIViewController) {
childViewController.willMove(toParentViewController: nil)
childViewController.view.removeFromSuperview()
childViewController.removeFromParentViewController()
}
我正在做的是在实例化我的2个ViewControllers(第一个和第二个)之后,我将它们添加为子视图控制器。
如何在不破坏我的所有逻辑和设计的情况下处理分段控件,我的意思是在导航栏之外显示它。
答案 0 :(得分:1)
我按照以下方式处理它。在容器视图中添加分段控件,因为您知道此视图将使用导航栏使用模拟指标,以便您知道分段控件的可见位置。
在此容器视图控制器中创建另一个视图,该视图将包含子视图控制器。使视图范围从分段视图的底部到容器视图的底部。 IBOutlet此视图(childContainerView),以便您可以在视图控制器代码中访问它。
不是简单地将子视图控制器添加到默认的self.view.addSubView(childVC.view),其中self.view是整个视图,只需将其添加到上述IBOutletted视图(childContainerView)。