popToRootViewController后没有显示Tabbar

时间:2017-04-28 05:22:01

标签: ios swift uitabbarcontroller

在我的应用程序中,我通过设置hidesBottomBarWhenPushed的{​​{1}}属性来隐藏tabbar。我不确定这个行为的设计与否,当我调用UIViewController来弹出所有视图控制器堆栈时,如果我之后推送了相同的视图控制器,则tabbar没有正确显示。即使我在调用popToRootViewController之后设置isHidden属性,也尝试显示tabbar,但它也不起作用。奇怪的是,在tabbar消失之后,我推了相同的视图控制器,当我试图通过使用手势弹出(滑动到弹出)来弹出视图控制器(而不是popToRootViewController)时,我可以看到tabbar。虽然过渡完成后它就消失了。

仅供参考,这是产生这种行为的一步一步。

  1. 两个标签上的init标签栏和导航控制器。
  2. 在一个选项卡的导航控制器上推送视图控制器(popToRootViewController为真)
  3. 通过调用hidesBottomBarWhenPushed从导航控制器弹出所有视图控制器 4通过在tabbarController
  4. 上设置popToRootViewController来更改选项卡索引
  5. 推送相同的视图控制器
  6. selectedIndex属性如何详细地显示/隐藏tabbar?

1 个答案:

答案 0 :(得分:1)

我会在我的应用中讨论这个问题。

对于每个网页,我都会修改self.navigationController?.navigationBar.isHiddenself.tabBarController?.tabBar.isHidden = false,以保证{{1}中 tabBar navigationBar 的状态}}

示例

viewWillAppear

navigationBar tabBar 可以在您推送新状态或弹出旧视图时保持状态与上一个视图控制器的连接。因此,它将让我们在每个视图控制器中设置控制并确保其状态如我所愿。