NavigationBar 高度在返回纵向时发生变化

NavigationBar height changing on coming back to Portrait orientation

我的结构如下:

ContainerView --embed segue--> NavigationController --> UITableViewController A --push segue--> UITableViewController B

这种排列效果很好,但是当我将方向更改为 横向 时,点击 A 中的一行,这会将我带到 B,并将方向改回Portrait,我的NavigationBar高度增加如下:

1)人像模式,一切正常:

1) 方向更改为横向模式,一切正常:

3) 在横向模式下点击一行,一切正常:


4) 返回纵向模式,导航栏比平时高!

我在 viewDidLoad()viewWillAppear()viewDidAppear() 等任何代码中都没有对布局或约束进行任何更改的代码。在情节提要中,我试过打开和关闭 Adjust ScrollView Insets 但没有任何运气。有什么问题吗?

更新: 如果我不使用 ContainerView,则不会发生这种情况。所以这似乎是罪魁祸首。我没有将自己的 class 用于 ContainerView 或包含它的视图。它的约束非常简单:前导、尾随 space 到 SuperView 和底部,分别是从上到下布局指南和顶部布局指南。这可能是 ContainerView 本身的错误吗?

好的,我知道问题出在哪里了。当我将 ContainerView 放在情节提要中 UIViewControllerView 中时,我对齐了 [=10= 的 top 边缘] 到 StatusBar 底部 边缘。这也是我设置约束的方式。这就是问题的根源。一旦我更改它,使 ContainerViewStatusBartop 边缘 aligned,问题就解决了!