弹出操作后,UINavigationController的大小无效(嵌套在UITabBarController中)

时间:2019-06-14 08:25:56

标签: ios swift uinavigationcontroller uitabbarcontroller

上下文:在我们的应用中,我们以UITabBarController作为根,然后每个选项卡视图控制器都包装在专用的UINavigationController中。我们已经为应用程序中的所有UINavigationController添加了全新的自定义弹出/推入过渡动画。

问题:每当我们按下具有hidesBottomBarWhenPushed = true的视图控制器时,在弹出该视图控制器时,我们都会看到UINavigationController的视图大小会随着标签栏的高度而减小。切换到其他选项卡,我们发现这些选项卡也受到了影响-它们的高度也有所降低。这意味着问题在于UITabBarController本身。由于某些原因,它决定从其子项的可用高度中减去标签栏的高度,这会影响UINavigationController及其子项的布局方式(请参见下面的屏幕截图)。

1。的初始状态,在将任何视图控制器推入导航堆栈之前。 enter image description here

2。。隐藏标签栏的视图控制器被按下。 enter image description here

3。。弹出隐藏标签栏的视图控制器。 enter image description here

UITabBarController的配置:

enter image description here

UINavigationController的配置用作制表符的根:

enter image description here

观察

  • 即使复杂度降低到裸露的骨头,上述效果仍然存在-不使用自定义类,过渡动画仅改变视图的水平位置。

  • 我们尝试为Under Opaque Bars启用UINavigationController,但是在这种情况下,视图高度不会降低UITabBar的高度,而是降低底部保险柜的高度区域(34分)。

我们很迷茫,非常感谢您提出任何有关此主题的想法。

0 个答案:

没有答案