2017-10-25 29 views
0

私はストーリーボードで3つのビューを持つシンプルなタブバーを作成しました。タブバーはうまく動作しますが、タブ内のボタンから別のビューコントローラーを表示しようとすると、新しいビューが画面全体にまたはタブバーにも表示されます。スイフト:ビューコントローラを表示するときにタブバーが表示されない - これを解決するには?

これは私がこれまでにボタンが押されたときにビューを提示する方法である:私が持っていた

@IBAction func buttonPressed(_ sender: UIButton) { 

     let newVC = self.storyboard?.instantiateViewController(withIdentifier: "extraVC") 
     self.present(newVC!, animated: true, completion: nil) 
    } 

他のアイデアは、このでした:

 self.tabBarController?.present(vc!, animated: true, completion: nil) 

しかし、私の驚きに、このはしませんでしたではありませんいずれかの作業。

タブバー内に別のビューコントローラを表示するにはどうすればいいですか(下のバーはまだ表示されています)?

答えて

1

現在のメソッドを使用している場合、ViewControllerはモーダルに表示され、UITabBarConntrollerをカバーします。ビューをモーダルで表示する代わりに、TabBarの最初のすべてのビューコントローラをUINavigationControllerに埋め込み、メソッドpushViewControllerを使用してスタックにプッシュすることができます。あなたはTabBarを見て、見栄えの良いアニメーションを無料で手に入れることができます。あなたのViewControllerで

+0

を私はナビゲーションコントローラにすべてのビューを埋め込むしようとしましたが、ある権利これはタブバーとうまく動作しますが、その後、タブバーのアイコンが表示されません。私はその問題の解決策を見出さなかったので、私はnavコントローラを使用しないと考えました。 navコントローラでアイコンが表示されない理由を知っていますか? – RjC

+0

UITabBarControllerがすべてのタブに埋め込まれている最初のビューコントローラーからアイコンを取得しているため、アイコンが表示されません。最初のコントローラは現在UINavigationControllerになり、デフォルトのUINavigationコントローラにはアイコンがありません。あなたはストーリーボードまたはコードで提供する必要があります。 –

+0

それでは、コード内に各ビューコントローラのタブバーアイコンを追加しておきます。私は単にこれをviewDidLoadに追加することはできないと思いますか? – RjC

-1

を行います

self.tabBarController?.present(nextViewController, animated: true/false, completion: {}) 
関連する問題