ios - 单个选项卡栏项目根据条件呈现不同的 View Controller ?

标签 ios swift uitabbarcontroller uitabbaritem

我正在使用标签栏 Controller 制作一个具有几个不同标签的应用程序。我在第一个选项卡中将项目添加到包中,并在下一个 View Controller 中更新购物车。如果用户在没有添加任何东西的情况下转到第二个选项卡(购物车),我希望它显示一个 View Controller ,说明购物车是空的。如果他们在添加内容后转到它,那么它将显示一个表格 View 。

有没有办法告诉标签栏 Controller 根据条件呈现不同的 View Controller ?

最佳答案

最简单的选择是使用一个 CartViewController,它的 View 有两个 subview ,一个 TableView (A) 包含购物车项目,另一个 View (B) 包含“购物车为空”消息。

覆盖其 viewWillAppear 函数,并根据购物车显示 View A 并隐藏 View B,反之亦然。

可以通过 viewControllers 修改 UITabBarController 的 subview Controller 属性(property)。但是,恕我直言,通过对购物车中的变化使用react来做到这一点很复杂,不值得这么麻烦。

关于ios - 单个选项卡栏项目根据条件呈现不同的 View Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41272995/

相关文章:

ios - 构建存档时 AKTabBarController 不起作用

ios - Xcode 颜色集 - 没有颜色选择器选项

swift - 如何在SwiftUI中制作刮刮卡效果?

ios - 带有导航 Controller 和 UIBarButtonitem 的选项卡栏应用程序

ios - TabBarController 只加载黑屏?

iphone - 像 DailyBooth 一样提升 UITabBarItem

ios - 呀!我们没有遗漏任何 dSYM

ios - UITableView没有窗口iOS13时的UITableViewAlertForLayoutOutsideViewHierarchy

swift - Swift 中的错误数字转换

ios - 无法将类型 'Range<String.Index>?' 的值转换为指定类型 'NSRange'(又名 '_NSRange')