0

几天来一直试图弄清楚为什么会发生这种情况。

我的应用程序应该在处理导航的所有屏幕之间具有共享视图。所以我为导航做了一个笔尖,上面有几个按钮,然后将该视图添加到窗口(我被告知这是一个糟糕的选择)

这个全局视图存储了 4 个导航控制器,因此用户可以在它们之间切换而不会丢失它们的位置(很像标签栏的工作方式)。但似乎将视图添加到窗口影响了我的应用程序为通话状态栏调整大小的方式。在 5.0 中,整个应用程序完美运行,但在 4.0 中完全错误。

在 4.0 上,如果我在屏幕上启用通话栏,它根本不会移动。

如果我使用通话栏推送视图控制器,导航栏会出现在顶部,但视图显示的比应有的低 20 像素

如果我启用了通话栏,按下屏幕,然后返回,导航栏向下移动 20 像素(应该如此),但视图保持在原位并被导航栏剪裁。

iOS 5 上发生了什么,而 iOS 4.x 上没有发生这些变化?该应用程序在 4.3 上都是错误的。

4

1 回答 1

1

创建一个“虚拟”视图控制器(UINavigationController 效果很好)。然后将您的观点添加到其中。不使用视图控制器层次结构事件将无法正确传播。

我怀疑这适用于 iOS 5,因为新的“容器”视图控制器系统。他们已经使系统在这些领域更加宽松。如果没有看到您的整个应用导航设计,我无法给出更具体的答案。

编辑:也尝试使用 WantsFullScreenLayout 属性。它可能会有所帮助。

于 2012-06-29T15:51:40.693 回答