当隐藏tabBar在iOS

时间:2015-11-27 07:07:37

标签: ios swift ios9 tabbar navigationcontroller

我想在推送到新的viewController时隐藏我的tabBar。我通过在Push in storyboard中勾选Hide Bottom Bar来实现这一目标。问题是,在向下移动到正确位置之前,正被推动的新视图暂时显示其原始位置(就好像tabBar仍在那里)。

搜索了一段时间后,我发现了一个类似的帖子: Auto Layout and "Hide bottom bar when pushed"

不幸的是,选择底部布局指南的底部约束的解决方案.Bottom在iOS 9中不再可用(它是灰色的)。我遵循了几个建议,将底部约束设置为容器边距,但它没有帮助这种向下移动。

有没有人找到解决此问题的方法?似乎只有在推送转换完成后才能识别隐藏tabBarController的几何结构。

2 个答案:

答案 0 :(得分:2)

事实证明我的inputAccessoryView导致奇怪的滚动行为。对我有用的解决方案是在覆盖中返回accessoryView之前添加view.layoutIfNeeded():

id | name | col1  | col2 | col3 |    date
-------------------------------------------
432| xxx  | 0     | 15   |  55  |  2015-11-17
432| yyy  | 10    | 30   |  25  |  2015-11-19 
432| zzz  | 60    | 40   | -15  |  2015-11-20  

433| aaa  | 0     | 60   |  80  |  2015-11-17
433| bbb  | 80    | 20   |  60  |  2015-11-19 
433| ccc  | 60    | 10   |  50  |  2015-11-20 

所以对于这个特殊情况,涉及一个嵌入tabBarController的navigationController,你想要推送到一个隐藏tabBar的viewController:

  1. 选中“在推送故事板上隐藏底栏”

  2. 将您要呈现的视图底部固定到容器底部(使用上面建议的方法或只选择屏幕底部的图钉图标,然后选择下方约束选择下拉箭头和图钉以查看)

  3. 最后,如果您使用的是inputAccessoryView,请将覆盖中的layoutIfNeeded()添加到getter中,如上所述。

答案 1 :(得分:1)

在Xcode7中,您必须右键单击元素,在底部绘制一条线,直到弹出约束选择器。约束选择器

enter image description here

然后按ALT,现在您将获得所需的底部约束

enter image description here