【发布时间】:2013-01-24 00:41:06
【问题描述】:
UINavigationController 中有两个 UIViewControllers。最上面的hidesBottomBarWhenPushed 设置为YES。当我推最顶部的UIViewController 时,它的UITableView 被推到它应该在的位置上方约20px(注意顶部与推入视图控制器的单元格之间的单元格高度差异)。
与下面屏幕截图中的单元格位置比较:
此外,当我弹出最上面的UIViewController 时,它的UITableView 被推到它应该在的位置下方约20px(注意UITableView 上方额外的深蓝色空间)。
我已尝试将我的 -[UIViewController setHidesBottomBarWhenPushed:YES] 呼叫转移到 -[UIViewController loadView]、-[UIViewController viewWillAppear:] 和 -[UIViewController viewDidAppear:]。这些回调都太晚了,因为UIViewController 已经被推送,所以UIToolbar 没有隐藏。
有没有办法避免这些差距?目前,我在最上面的UIViewController 的-[UIViewController viewDidAppear:] 和最下面的UIViewController 的-[UIViewController viewDidAppear:] 中调用-[UINavigationController setToolbarHidden:YES animated:NO] 和-[UINavigationController setToolbarHidden:NO animated:NO]。这不太理想。
【问题讨论】:
-
这些截图看起来很眼熟。我想我们在 Renaissance.io 坐在一起。应该自我介绍一下。
标签: ios uinavigationcontroller uikit core-animation uitoolbar