来自 XIB 的 UIViewController 没有调整到 UINavigationBar

UIViewController from XIB not resizing to UINavigationBar

我在单独的 xib 中创建了 MyViewController 并将其推送到导航堆栈。它已正确加载并调整大小,但隐藏在显示的导航栏下方(绿色按钮隐藏): 在 xib 中,我将顶部栏的所有选项设置为推断:

我该如何解决?当然我可以在xib中手动添加间距,但是这样不对。

编辑: 在 xib 的属性中,我没有看到顶部栏勾号下的扩展,因为在 xib 中我创建了 UIView,文件所有者设置为 MyViewController。

我已经设法在 viewDidLoad 中以编程方式更改 edgesForExtendedLayout 属性:

self.edgesForExtendedLayout = UIRectEdgeRight | UIRectEdgeLeft | UIRectEdgeBottom;

在问题的帮助下: How to set UIViewController "extend edges" properties

Select 您在 xib 中的视图和转到属性检查器

和 select 顶部栏如屏幕截图所示,然后相应地设计您的屏幕。它让您了解导航栏将占用多少 space。

因为是半透明的。你应该这样做。

self.navigationController?.navigationBar.isTranslucent = false

你会看到它有效。当导航栏不是半透明时,xib 无法定位到导航栏后面显示它有什么。