2017-04-27 1 views
0

UITabBarControllerの2番目のタブ(インデックス:1)にリンクされたVCを提示する必要があります。ストーリーボードのセグを使わずに。UITabBarControllerはタブインデックス1にVCを表示します

セグが働いています。コード:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 

    let tabVC = segue.destination as? UITabBarController 
    tabVC.selectedIndex = 1 
} 

私のコードは以下のように見えます。 tabVCを表示すると、selectedIndexを1(2番目のタブ)に設定していますが、最初の(インデックス:0)タブが表示されます。これを解決するための提案はありますか?ありがとう

func presentTab1(_ sender: Any) { 

    let tabVC = MainTabBar() 
    tabVC.selectedIndex = 1 

    present(tabVC, animated: true, completion: nil) 
} 
+0

UIViewControllerAnimatedTransitioningを使用できます。 –

+0

あなたの質問を精緻化する。 – KKRocks

+0

アプリをTabBarで起動し、最初のタブではなく2番目のタブから開始しますか? – DonMag

答えて

4

は二つのアプローチがありますするには、あなたはそれらの誰

1を使用することができます)あなたはNavigationControllerを持っている場合は、あなたの関数内のコードの行の下にしてみてください。

その後、
func presentTab1(_ sender: Any) { 
    let targetVC = self.storyboard?.instantiateViewController(withIdentifier: "NavigateionControllerIdentifier") as! UINavigationController 
    self.present(targetVC, animated: true) 
} 

2)それとも、ViewConterollerに直接移動したい場合は

func presentTab1(_ sender: Any) { 
    let targetVC = (self.storyboard?.instantiateViewController(withIdentifier: "viewControllerIdentifier"))! 
    self.present(targetVC, animated: true) 
} 
+0

感謝しますが、ストーリーボード識別子「viewControllerIdentifier」はどこで開始されますか? – Koen

+0

Identity InspectorのviewControllerIdentifierとしてStoryBoard IDを設定してください – Krimi

+0

私はストーリーボードを使用していません!コードでStoryboardIDを設定する方法を知っていますか – Koen

0

選択したインデックスをコンストラクタに渡して、ViewDidLoadでSelectedIndexを設定することをお勧めします。

0

ステップ1:

あなたがしたいあなたのビューコントローラに名前を付け行く。そのビューコントローラを選択し、ここからそのVCのアイデンティティを与える enter image description here

ステップ2:

移動し、次のコード使用しているVCへ:

let targetVC = 
(self.storyboard?.instantiateViewController(withIdentifier: "someVC"))! 
self.present(targetVC, animated: true) 

をあなたはナビゲーションコントローラを持っている場合次に。

let targetVC = 
self.storyboard?.instantiateViewController(withIdentifier: "NavigationControllerId") as! UINavigationController 
self.present(targetVC, animated: true) 
+0

私はストーリーボードを使用していません!コードでStoryboardIDを設定する方法を知っていますか? – Koen

+0

コードでタブバーコントローラーを作ったのですか?子ビューコントローラだけでなく、 –

+0

let storyboard = UIStoryboard(名前: "MainStoryboard"、バンドル:nil) –

0

私はあなたがこのようにそれを行うことができ、同じ問題を持っていた:

func presentTab1(_ sender: Any) { 
    self.tabBarController?.selectedIndex = 1 
    _ = self.navigationController?.popToRootViewController(animated: true) 
} 
私のためグレタの作品

! 訪問したいインデックスを知るだけでいいです。

関連する問題