2017-01-26 12 views
0

私はこの問題を数日中止めてしまいました。Tab Bar Itemに複数のView Controllerを持たせる方法

私はUITabBarControllerを持っていますが、それは4つのTabBarItemです。私は、コントローラは、ユーザがログインしているかどうかに応じて、ユーザに表示されるどのビューを決定する

例えば、ユーザがログインしていない場合、私はどのTabBarItemに応じて異なるログイン画面を表示しますが選択されている - 各ログインは異なって見えます。ユーザーがログインすると、選択した通常のコンテンツを表示したいTabBarItem

私は各タブバー項目に複数のViewControllerがあると考えていました。ユーザーがTabBarItemを選択すると、ユーザーがログインしているかどうかを確認し、正しい `` ViewControllerを表示します。私はこれが正しいアプローチであるかどうか、そしてこの振る舞いをどのように達成するかについてはわかりません。

更新: これは私が出ているソリューションですが、誰もが考えているかと思った - それは正しいアプローチだかどうか。 これは私のストーリーボードは、次のようになります。ユーザーは、私は、ログイン・ビュー・コントローラを示すだろうし、ユーザーがログインしていないときに、私はログアウトView Controllerを示すだろうに記録されたときに enter image description here

アイデアがあります。

私はself.present(...)を使って、ログインとログアウトViewControllerに変更します。

+0

あなたの現在のコードを追加することができます – muescha

答えて

1

setViewControllersと表示されているタブを変更することができます。ユーザーがログインまたはログアウトしたときに、必要なviewControllerの配列を設定するだけです。

class TabBarController: UITabBarController { 
    func onMyLogin() { 
     setViewControllers(myNormalViewControllers, animated: false) 
    } 
    func onMyLogout() { 
     setViewControllers(myUnidentifiedViewControllers, animated: false) 
    } 
} 
+0

ありがとうございます。私は今日それを試してみる。私は考えていた可能な解決策で私の質問を更新しました。あなたの考えが何であるかを知りたいときは – breaktop

+0

@breaktopあなたの解決策もうまくいきます。これは、2つの状態間の遷移をどのようにアニメートするかに関する趣味の問題です。現在のケースでは、ネイティブ 'animated:true'を持つ単一のTabBarControllerの私のソリューションを好む。 –

+0

あなたは客観的なc –