0

我目前工作的一个新功能,它提出这样的工作时:iOS的 - 如何避免将导航控制导航栏项目与容器视图

enter image description here

的全部内容是容器视图,以便通过播放分段控件来更改内容。 我有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个ViewControllers(第一和第二),我将它们添加为子视图控制器。

如何处理分段控件而不会破坏我的所有逻辑和设计,我的意思是让它在导航栏外可见。

+0

分段控件现在是导航栏项目的一部分,是否正确?为什么你需要首先“把它拉下来”。你想试着让它在导航栏中工作吗? –

+0

它在导航栏中完美地与它一起工作。但我必须将我的ViewController嵌入到新的导航栏中。这就是为什么我失去了我以前的导航。在导航栏中使用分段控件并不具有美感。 – Balanced

回答

1

我会处理它如下。在你的容器视图中添加你的分段控件,因为你知道这个视图将有一个导航栏使用模拟指标,所以你知道分段控件的可见位置。

在此容器视图控制器中创建另一个视图,其中将包含您的子视图控制器。将视图范围从分段视图的底部放置到容器视图的底部。 IBOutlet这个视图(childContainerView),所以你可以在你的视图控制器代码中访问它。

而不是简单地将子视图控制器添加到您的默认self.view.addSubView(childVC.view)其中self.view是整个视图,只需将其添加到上述IBOutletted视图(childContainerView)。

+0

准确,清晰。我正在绑定它。 – Balanced

相关问题