我需要缩小 UINavigationBar 的高度(附加到 UINavigationController)
我已经通过 UINavigationControllerDelegate 的 navigationController:didShowViewController 方法完成了这项工作,并且工作正常。
问题是主视图中的可见视图控制器。它并没有调整自身的大小以反映新的导航栏高度。因此,didShowViewController 方法也调整了 viewcontroller 的视图框架的大小,效果很好。
但是,当我去推动一个新的 ViewController 或弹出时,我总是看到在动画过渡到下一个视图期间视图向下移动到原始位置。然后,由于我在 NavControllerDelegate 中的 didShowViewController 中的代码,它会将其移回。
我很好奇确保降级永远不会发生的最佳方法。
我尝试将调整框架大小的代码放入 willShowViewController 中,但这并没有做任何事情。
我还确保作为正在弹出的 UIViewController 的视图的 UIView 框架也具有正确/移位的尺寸。不去那里。
就像我需要在调用 pushViewController 之后和调用 UINavigationController 的 didShowViewController 之前拦截绘图动作。
我已经盯着我的代码好几个小时了……什么也没有。希望这对外面的人有意义。
谢谢!!!