在 iOS 13 中将 GooglePlaces SearchController 放入 NavigationItem 时出现重复的标题文本

Duplicate Title Text when placing GooglePlaces SearchController into NavigationItem in iOS 13

我有一个使用 GooglePlaces API 的 iOS 应用程序。我使用 "Add a Results Controller" 技术来实现搜索栏,而不是像这样将搜索器分配给 navigationItem.titleview:

navigationItem.titleView = searchController?.searchBar

我像这样将 searchController 分配给 navigationItem.searchController:

navigationItem.searchController = searchController

在 iOS 12.4 之前,这对我一直有效。我不喜欢搜索者在 titleView 中时的样子。

现在 iOS 13.x 这会导致重复的标题文本,可以在附加的图像中看到。

当搜索栏被激活然后被取消或者当焦点移动到另一个控件时,会出现这个副本。当你下拉底层 table 时,你可以在实时应用程序中看到副本。

当您导航到详细信息页面时,它还会导致搜索页面标题渗漏。我不知道这是 GooglePLaces API 问题还是 iOS 13 问题,但它导致我的应用程序被应用程序商店拒绝。

如果有人看到这种行为,请告诉我。我有一个显示行为的示例项目。

我一直在为同样的问题而苦苦挣扎。这绝对是 UISearchController 的问题。

目前已知的是:

  1. 可以通过将searchController.hidesNavigationBarDuringPresentation设置为true来避免(感谢Chris' comment)。

  2. 如果您绝对必须将 searchController.hidesNavigationBarDuringPresentation 设置为 false,您可以手动删除违规标签,如 this answer.

  3. 最后,been reported iOS 13.2 修复了该错误。

有关详细信息,请参阅 this question

P.S。很难找到关于该错误的任何信息,因此我决定在一个答案中收集所有可用的线索,供所有面临相同问题的人使用。

此问题已通过 iOS 13.2

修复