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

相關問題