调整uinavigationbar push / pop viewcontroller大小问题

时间:2009-12-07 13:53:45

标签: iphone uiviewcontroller resize uinavigationbar frame

我需要缩小UINavigationBar的高度(附加到UINavigationController)

我通过UINavigationControllerDelegate的navigationController:didShowViewController方法完成了这个,并且它工作正常。

问题是主视图中的可见viewcontroller。它没有调整自身以反映新的导航栏高度。因此,didShowViewController方法也调整了viewcontroller的视图框架的大小,这可以正常工作。

但是,当我继续推动新的ViewController或弹出时,我总是看到视图在动画过渡到下一个视图期间向下移动到原始位置。然后,由于我在NavControllerDelegate中的didShowViewController中的代码,它将其重新启动。

我很好奇确保永远不会发生降档的最佳方法。

我尝试将调整框架大小的代码放入willShowViewController,但这没有做任何事情。

我还确保UIView的框架是正在弹出的UIViewController的视图,也是正确/移位的尺寸。不去那里。

就像我需要在调用pushViewController之后,以及在调用UINavigationController的didShowViewController之前拦截绘图操作。

我一直盯着我的代码几个小时&小时......没有到达任何地方。希望这对那里的人有意义。

感谢!!!

1 个答案:

答案 0 :(得分:2)

我认为另一个选项是将NavigationControllers navigationBarHidden设置为YES。这将完全隐藏导航栏,然后您可以在该栏所居住的位置绘制您想要的任何视图。只需将控件放在包含导航方法的视图上(push,pop等等)。让它与导航栏具有相同的风格可能是一个挑战。