使用大标题时不显示导航栏 Xcode 11.1

Navigation bar not showing when large title used Xcode 11.1

我最近更新到 Xcode 11.1,更新伴随着故事板的大量随机更改。除了一个我都修好了。

导航栏为completely transparent when the large title is used。

另一方面,一旦我向下滚动,导航栏就会按预期使用较小的标题 is visible。

当我看故事板时,the navigation controller's navigation bar is not visible。

我试过属性检查器无济于事。我不认为这个问题是由搜索栏引起的,但我是这样实现的:

searchController 声明:

let searchController = UISearchController(searchResultsController: nil)

在 viewDidLoad() 中:

searchController.searchBar.delegate = self
searchController.searchResultsUpdater = self
searchController.obscuresBackgroundDuringPresentation = false
searchController.searchBar.placeholder = "Search \(clubs.count) clubs"
navigationItem.searchController = searchController
navigationItem.hidesSearchBarWhenScrolling = true

iOS 13 使用新的 UINavigationBarAppearance() 对象来更改导航栏的属性。

当导航栏位于顶部时,它使用 scrollEdgeAppearance

通过更改导航栏的 scollEdgeAppearance,可以更改背景颜色。

if #available(iOS 13.0, *) {
    let appearance = UINavigationBarAppearance()
    appearance.backgroundColor = .white
    navigationController?.navigationBar.scrollEdgeAppearance = appearance
} else {
    print("iOS version too low!")
}