单个标签栏项目根据条件呈现不同的视图控制器?
Posted
技术标签:
【中文标题】单个标签栏项目根据条件呈现不同的视图控制器?【英文标题】:Single tab bar item present different view controllers depending on a condition? 【发布时间】:2016-12-21 22:30:15 【问题描述】:我正在使用标签栏控制器制作一个具有几个不同标签的应用程序。我在第一个选项卡中将项目添加到包中,并在下一个视图控制器中更新购物车。如果用户在没有添加任何内容的情况下转到第二个选项卡(购物车),我希望它显示一个视图控制器,说购物车是空的。如果他们在添加了某些内容后转到它,那么它将显示一个表格视图。
有没有办法告诉标签栏控制器根据条件呈现不同的视图控制器?
【问题讨论】:
【参考方案1】:最简单的选择是使用CartViewController
,其视图有两个子视图,一个包含购物车项目的表格视图 (A) 和另一个包含“购物车为空”消息的视图 (B)。
覆盖其viewWillAppear
函数,并根据购物车显示视图 A 并隐藏视图 B,反之亦然。
您可以通过viewControllers
属性修改UITabBarController
的子视图控制器。但是,通过对购物车中的更改做出反应来做到这一点很复杂,而且不值得麻烦,恕我直言。
【讨论】:
谢谢这就是我最终做的,我认为这也是最简单的解决方案。【参考方案2】:您实际上可以呈现相同的UITableViewController
。
在那个UITableViewController
你一定知道你是否有数据。如果您有UITableViewController
的数据,那么您将在UITableViewController
中显示购物车中的商品,否则您可以在同一UITableViewController
中显示空消息。
您可以参考这篇文章在 `UITableViewController? 上显示空消息?
If no Table View results, display "No Results" on screen.
【讨论】:
以上是关于单个标签栏项目根据条件呈现不同的视图控制器?的主要内容,如果未能解决你的问题,请参考以下文章