gpt4 book ai didi

ios - 在 popToRootViewController 之后 Tabbar 没有出现

转载 作者:行者123 更新时间:2023-11-28 15:41:16 25 4
gpt4 key购买 nike

在我的应用程序中,我通过设置 UIViewControllerhidesBottomBarWhenPushed 属性来隐藏标签栏。我不确定这种行为是否经过设计,当我调用 popToRootViewController 弹出所有 View Controller 堆栈时,如果我在之后推送相同的 View Controller ,则标签栏无法正确显示。即使我在调用 popToRootViewController 后尝试通过设置 isHidden 属性来显示标签栏,但它也没有用。奇怪的是,在标签栏消失后,我按下了同一个 View Controller ,当我试图通过使用手势弹出(滑动弹出)来弹出 View Controller (而不是 popToRootViewController)时,我可以看到标签栏。虽然它在转换完成后消失了。

仅供引用,这是逐步产生这种行为的。

  1. 在两个选项卡上初始化选项卡栏和导航 Controller 。
  2. 在一个选项卡的导航 Controller 上推送 View Controller (hidesBottomBarWhenPushed 为真)
  3. 通过调用 popToRootViewController 从导航 Controller 弹出所有 View Controller 4 通过在 tabbarController 上设置 selectedIndex 来更改选项卡索引
  4. 推送相同的 View Controller

hidesBottomBarWhenPushed 属性如何详细显示/隐藏标签栏?

最佳答案

我将讨论我的应用中的问题。

对于每个页面,我将编辑 self.navigationController?.navigationBar.isHiddenself.tabBarController?.tabBar.isHidden = false 以保证状态viewWillAppear 中的 tabBarnavigationBar

示例

// In this viewController, I'll show the navigation bar and hide tab bar
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.navigationBar.isHidden = false
self.tabBarController?.tabBar.isHidden = true
}

navigationBartabBar 可以在您推送新 View Controller 或弹出旧 View Controller 时保持它们与上一个 View Controller 的状态。所以它会让我们在每个 View Controller 中设置来控制和确保它的状态如我所愿。

关于ios - 在 popToRootViewController 之后 Tabbar 没有出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43672518/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com