我想在推送到新的viewController时隐藏我的tabBar。我通过在Push in storyboard中勾选Hide Bottom Bar来实现这一目标。问题是,在向下移动到正确位置之前,正被推动的新视图暂时显示其原始位置(就好像tabBar仍在那里)。
搜索了一段时间后,我发现了一个类似的帖子: Auto Layout and "Hide bottom bar when pushed"
不幸的是,选择底部布局指南的底部约束的解决方案.Bottom在iOS 9中不再可用(它是灰色的)。我遵循了几个建议,将底部约束设置为容器边距,但它没有帮助这种向下移动。
有没有人找到解决此问题的方法?似乎只有在推送转换完成后才能识别隐藏tabBarController的几何结构。
答案 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:
选中“在推送故事板上隐藏底栏”
将您要呈现的视图底部固定到容器底部(使用上面建议的方法或只选择屏幕底部的图钉图标,然后选择下方约束选择下拉箭头和图钉以查看)
最后,如果您使用的是inputAccessoryView,请将覆盖中的layoutIfNeeded()添加到getter中,如上所述。
答案 1 :(得分:1)