0

でセグエを決定しますスウィフト - TabBarController - 私は次のような状況があり、実行時

私TabBarControllerでは、私は複数のタブがあり、それはすべて正常に動作しますが、:

1つの特定のタブの先が動的です。

特定の条件が一致する場合、この特定のタブはNavigationViewControllerを開く必要があります。

他の条件が一致する場合、この特定のタブはViewControllerを開く必要があります。

ソリューションはありますか?

実行時にタブの宛先を変更するにはどうすればよいですか?

ご挨拶と感謝を

答えて

0

昔々、遠く離れた銀河で... Seguesは存在すらしていませんでした。だからええ

UITabBarControllerには、あなたが処理したい新しいView Controllerを渡すことができるセッターがあります。このようにタップした時点で何が表示されているのかを判断することはできませんが、条件の変化に合わせてコントローラーを変更することができます。あなたはしかし、タブをタップすると決定する必要がある場合

open func setViewControllers(_ viewControllers: [UIViewController]?, animated: Bool) 

は...あなたは、本質的に空のコントローラーに直接ごタブコントローラを持っている、との2つのオプションを持っていること、コントローラのビューコントローラの封じ込めを使用することができますそれを隠しておいてください。ストーリーボードにはほとんどサポートコードがありません。私はこのオプションを好むと思う。

0

するのではなく、あなたは、このようないくつかのcondition変数の状態に応じて特定のセグエを行うことができ、Seguesを使用し続けたい場合:

func presentAppropriateView() { 
    if condition { 
     performSegue(withIdentifier: "ToNavBar", sender: self) 
    } else { 
     performSegue(withIdentifier: "ToVC", sender: self) 
    } 
} 
0

は、特定の条件に対して実行するデリゲートメソッドを書きます実行時に [self.tabBarController setSelectedIndex:0]を呼び出します。

関連する問題