这是问题所在 . 我有以下视图层次结构,使用翻转动画以模态方式推送:
-
BackViewController
-
UITabBarController
-
UINavigationController
-
ForecastListViewController
它看起来像这样:
以下是iOS 4.3中翻转期间的调用顺序:
-
BackViewController viewDidLoad
-
ForecastListViewController viewDidLoad
-
BackViewController viewWillAppear
-
ForecastListViewController viewWillAppear
-
BackViewController viewDidAppear
-
ForecastListViewController viewDidAppear
在iOS 5.0中,顺序不同(步骤2和3切换):
-
BackViewController viewDidLoad
-
BackViewController viewWillAppear
-
ForecastListViewController viewDidLoad
-
ForecastListViewController viewWillAppear
-
BackViewController viewDidAppear
-
ForecastListViewController viewDidAppear
问题是,现在导航栏的顶部在翻转动画期间在状态栏的底部下方显示10个像素,然后在动画终止后快速回到其预期位置 .
我试过更改ForecastListViewController viewDidLoad方法中的导航栏框架但没有成功:没有任何反应 .
如果我强制加载ForecastListViewController,那么它就像步骤2一样(通过在调查此问题的同时强制遍历层次结构),一切都很好 . 但我正在寻找一个好的解决方案,而不是这个“黑客” .
有这个问题的人吗?任何线索或指针?我对如何优雅地解决这个问题感到茫然