我UIViewController在 a 中有两个 s UINavigationController。最顶部已hidesBottomBarWhenPushed设置为YES。当我推 topmostUIViewController时,它UITableView被推到它应该在的位置上方大约 20 像素(注意顶部到被推视图控制器的单元格之间的单元格高度差异)。

与下面屏幕截图中的单元格位置进行比较:

此外,当我弹出 topmost 时UIViewController,它UITableView会被推到它应该在的位置下方约 20 像素(请注意 上方的额外深蓝色空间UITableView)。

我已经尝试将我的-[UIViewController setHidesBottomBarWhenPushed:YES]呼叫转移到-[UIViewController loadView]、-[UIViewController viewWillAppear:]和-[UIViewController viewDidAppear:]。那些回调都太晚了,因为UIViewController已经被推送了,所以UIToolbar没有隐藏。
有没有办法避免这些差距?目前,我正在调用-[UINavigationController setToolbarHidden:YES animated:NO]我最顶层UIViewController和-[UIViewController viewDidAppear:]最-[UINavigationController setToolbarHidden:NO animated:NO]底层UIViewController的-[UIViewController viewDidAppear:]。这不太理想。