iOS - 使用容器视图时如何避免将导航控件放在导航栏项目中
iOS - How to avoid putting the Navigation Control in the Navigation Bar Items when working with Container View
我目前正在开发如下所示的新功能:
整个内容是一个Container View,为了通过Segmented Control来改变内容。
我还有 2 个其他 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 个 ViewController(第一个和第二个)之后,我将它们添加为子视图控制器。
如何在不破坏所有逻辑和设计的情况下处理分段控件,我的意思是让它在导航栏之外可见。
我会按如下方式处理。在您的容器视图中添加您的分段控件,因为您知道此视图将有一个导航栏使用模拟指标,因此您知道分段控件的可见位置。
在此容器视图控制器中创建另一个视图,它将包含您的子视图控制器。使视图范围从分段视图的底部到容器视图的底部。 IBOutlet 这个视图 (childContainerView) 所以你可以在你的视图控制器代码中访问它。
与其简单地将子视图控制器添加到您的默认 self.view.addSubView(childVC.view),其中 self.view 是整个视图,只需将其添加到上述 IBOutletted 视图 (childContainerView) .
我目前正在开发如下所示的新功能:
整个内容是一个Container View,为了通过Segmented Control来改变内容。 我还有 2 个其他 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 个 ViewController(第一个和第二个)之后,我将它们添加为子视图控制器。
如何在不破坏所有逻辑和设计的情况下处理分段控件,我的意思是让它在导航栏之外可见。
我会按如下方式处理。在您的容器视图中添加您的分段控件,因为您知道此视图将有一个导航栏使用模拟指标,因此您知道分段控件的可见位置。
在此容器视图控制器中创建另一个视图,它将包含您的子视图控制器。使视图范围从分段视图的底部到容器视图的底部。 IBOutlet 这个视图 (childContainerView) 所以你可以在你的视图控制器代码中访问它。
与其简单地将子视图控制器添加到您的默认 self.view.addSubView(childVC.view),其中 self.view 是整个视图,只需将其添加到上述 IBOutletted 视图 (childContainerView) .