2016-12-21 3 views
1

私は、タブバーコントローラを使っていくつかの異なるタブを持つアプリケーションを作っています。最初のタブでアイテムをバッグに追加し、次のビューコントローラーでカートを更新します。ユーザーが何も追加せずに2番目のタブ(カート)に移動した場合、カートが空であることを示すビューコントローラを表示します。彼らが一度それに行くと、何かを追加した後、それはテーブルビューを表示します。単一のタブバーアイテムは、条件によって異なるビューコントローラを表示しますか?

条件によっては、タブバーコントローラに異なるビューコントローラを表示するように指示する方法はありますか?

答えて

1

最も単純なオプションは、ビューに2つのサブビュー、カート項目を含むテーブルビュー(A)、および「カートが空です」というメッセージの別のビュー(B)を持つ1つのCartViewControllerを使用することです。

そのviewWillAppear機能をオーバーライドし、カートに応じてビューAを表示し、ビューBを非表示にします。

viewControllersプロパティを使用して、UITabBarControllerの子ビューコントローラを変更します。しかし、カート内の変化に反応することでこれを行うことは複雑で、トラブルの価値はない、IMHO。

+0

私がやったことはありがたいことですが、私はそれも最も簡単な解決策だと思います。 – jnwagstaff

-1

実際に同じUITableViewControllerを提示することができます。 そのUITableViewControllerには、データがあるかどうかを知っている必要があります。 UITableViewControllerのデータがある場合は、UITableViewControllerにカート内のアイテムを表示し、それ以外の場合は同じUITableViewControllerで空のメッセージを表示できます。 この投稿を参照すると、 `UITableViewControllerに空のメッセージを表示できますか?

If no Table View results, display "No Results" on screen

関連する問題