0

コンテナビューで作業するとき、ナビゲーションバー項目にナビゲーションコントロールを入れないようにする方法:iOSの - 私は現在、次のように提示された新機能に取り組んでいます

enter image description here

全体のコンテンツがありますSegmented Controlで再生してコンテンツを変更するには、[Container View]をクリックします。 私は他の2つのUIViewController(1番目と2番目のコンテンツ用)を持っています。

明らかにナビゲーションコントローラに組み込まれています。

私の問題は、セグメント化されたコントロールを置くことができないということです。ナビゲーションバーの外にあるということです。

私がそれを落とすと、隠れて表示されます。ここで

は私のメインビューコントローラ(コンテナビューを含むもの)のいくつかのコードです:私がやっている何

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(第1、第2)をインスタンス化した後、私は、それらを追加することです子ビューコントローラ。

セグメント化されたコントロールをすべてのロジックとデザインを損なうことなく処理するにはどうすればいいですか。ナビゲーションバーの外に表示することを意味します。

+0

セグメント化されたコントロールは、ナビゲーションバーの項目の一部です。なぜあなたは最初に「引き下げる」必要がありますか?あなたは最初にナビゲーションバーでそれを動作させようとしますか? –

+0

Nav Barで完全に動作しています。しかし、新しいNavigation BarにViewControllerを組み込む必要がありました。それが私の「以前の」ナビゲーションを失った理由です。そして、それはナビゲーションバーのセグメンテーションコントロールでは本当に美的ではありません – Balanced

答えて

1

私は次のように扱います。コンテナビューでは、セグメント化されたコントロールを追加します。このビューには、シミュレーションされたメトリックがナビゲーションバーに表示されるため、セグメント化されたコントロールが表示される場所を知ることができます。

子ビューコントローラを含むこのコンテナビューコントローラで別のビューを作成します。セグメントビューの下部からコンテナビューの下部までのビューエクステントを作成します。 IBOutletこのビュー(childContainerView)は、ビューコントローラのコードでアクセスできるようにします。

デフォルトのself.view.addSubView(childVC.view)に子ビューコントローラを追加するのではなく、self.viewがビュー全体である場合は、前述のIBOutlettedビュー(childContainerView)に追加するだけです。

+0

正確で明確です。私はそれを結びつけている。 – Balanced

関連する問題