2017-06-15 33 views
0

iOSアプリケーションが読み込まれると、タブビューコントローラが3つのタブ、すなわちcharge, location, moreで読み込まれます。さらにクリックすると、ログインするためのオプションが表示されます。ログインのクリック数が「signviewcontroller」になったら、ユーザーがGoogleプロフィールを選択してサインインする - >成功したら、[料金]ページに移動する必要があります。ユーザーがサインインしないと、アプリが初めて読み込まれるときには、通常のタブが表示されるはずです - >有料、場所など。tabviewcontrollerとナビゲーションコントローラsegueに下のタブが表示されない

問題は、TabViewControllerNavigationControllerが正しく整列しているかわかりません。サインインをクリックすると、Signviewcontrollerが表示され、またChargeViewControllerに行きますが、空のナビゲーションバーがありますが、タブとナビゲーションバーの項目名が表示されません。ここで

は私のセグエコードです:ここで

self.performSegue(withIdentifier: "signin_complete", sender: self) 

が私のストーリーボードのレイアウトで、問題点を抽出しようとした下記に示す: enter image description here

を私は違った私の見解コントローラをレイアウトする必要がありますか?私は、下のタブを修正するnavigationcontrollerを追加する必要があると読んだが、そうはしなかった。

GIFのように見え、最後のページの料金がどのようにタブに下に表示されていないか気づきます。 gif link

+0

これは何か? https://stackoverflow.com/questions/29458948/how-to-use-navigation-controller-inside-of-uitabbarcontroller-with-storyboard-on – Ruchi

+0

プッシュの代わりにrootViewControllerとして設定する必要があります。 ** appDelegate = UIApplication.shared.delegateを! AppDelegate appDelegate.self.window?.rootViewController = tabBarController ** – KKRocks

答えて

0

SignviewcontrollerNavigation Controller - ChargeViewControllerの間のセグを削除する必要があります。その後、このナビゲーションコントローラにはTabbarがLocationのように表示されます。

ここに私の例:

With Segue Without TabBar

Without Segue With TabBar

その後、あなたは自分のUITabBarControllerクラスを作成する必要があります。その後、tabBar didSelect内のビューコントローラを制御することができます。署名の状態とルートのSignViewControllerまたはChargeViewControllerを確認します。

override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) { 
    let nav: UINavigationController = self.tabBarController?.viewControllers?.first as! UINavigationController 
    //get sign or charge view controller 
    nav.setViewControllers([sign or charge], animated: true) 
} 
関連する問題