我有一个选项卡栏导航 Controller ,对于选项卡栏上可用的选项之一,我想执行以下操作,本例中的选项名称是“订单历史记录”。
我想要一个带有事件指示器的简单 View Controller 来从我的 Firebase 数据库获取数据。收集完所有数据后,我就有了一个 if 语句。如果对 Firebase 的查询没有返回任何值,我想转向另一个 View Controller ,该 Controller 将向用户显示他/她尚未下任何订单。但是,如果对 Firebase 的查询返回任何订单历史数据,那么我想转至一个 TableView Controller ,该 Controller 将以有组织的方式显示所有数据。
我遇到的问题是我希望在上述每个 subview 的底部都有标签栏菜单。我知道我可以通过将第一个 View (带有事件指示器的 View )嵌入到导航 Controller 中来做到这一点。但是,我注意到,一旦我点击不同的选项卡栏项目,然后返回到此选项卡栏项目(“订单历史记录”选项卡栏项目),它不会显示带有事件指示器的第一个 View 来执行对再次数据库。相反,它会返回到导航堆栈中显示的最后一个 View ,该 View 向用户显示他/她尚未下任何订单。重要的是每次都执行对数据库的查询,以确保每次都刷新数据。
如果您能提供有关如何最好地实现这一点的意见,我将不胜感激。我正在使用 Storyboard来完成这一切。谢谢
最佳答案
您可以将 orderHistoryNavController 保留为选项卡栏中的 viewController。在标签栏中保留对导航 Controller 的弱引用,然后重写 UITabbar:didSelectViewController ,如下所示。
func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) { orderHistoryNavController.popToRootViewController(NO) }
每当选择新选项卡时,这都会弹出到事件指示器(即使隐藏)。
关于ios - 如何在 Swift 中不使用导航 Controller 的情况下将选项卡栏菜单传播到 subview ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43645320/