iPhone X iOS 11 上未显示 UINavigationBar 后退按钮

UINavigationBar back button not showing on iPhone X iOS 11

我遇到了一个问题,当我 运行 我的应用程序在 iPhone SE 模拟器上时,它在导航栏上显示后退按钮,就像这样。

但是当我 运行 在 iPhone X 上使用相同的应用程序时,iPhone 8 和 iPhone 8 加上 iOS 11 和 XCode 9 导航栏上没有后退按钮,它适用于所有 ViewControllers 而不是特定 viewController。这是例子

谁能告诉我为什么会这样。

我遇到了后退按钮只有一点点的问题。在调试控制台中,它在导航栏中显示了一些损坏的约束。

我发现应用委托中的这一行是问题所在。

 UIBarButtonItem.appearance().setBackButtonTitlePositionAdjustment( // Remove the text "Back" from the back button so only the back arrow is visible
        UIOffset(horizontal: -100, vertical:-100),
        for: UIBarMetrics.default
    )

尝试在您的代码中找到任何外观 api 调用,看看您是否可以修改栏按钮偏移量。

经过一番努力,我知道在设置为 NavBarTitleView

之前我正在设置视图的前导 space
navView.viewLeadingConstraint.constant = (UIDevice().isIPhone5 || UIDevice().isIPhone4) ? -15:-40

由于上面的代码,我的后退按钮隐藏了,所以我删除了上面的代码行,并在 NavView 中添加了以下方法,这解决了我的问题。

override var intrinsicContentSize: CGSize {
    return UILayoutFittingExpandedSize
}