在 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 的问题。
目前已知的是:
可以通过将searchController.hidesNavigationBarDuringPresentation
设置为true
来避免(感谢Chris' comment)。
如果您绝对必须将 searchController.hidesNavigationBarDuringPresentation
设置为 false
,您可以手动删除违规标签,如 this answer.
最后,been reported iOS 13.2 修复了该错误。
有关详细信息,请参阅 this question。
P.S。很难找到关于该错误的任何信息,因此我决定在一个答案中收集所有可用的线索,供所有面临相同问题的人使用。
此问题已通过 iOS 13.2
修复
我有一个使用 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 的问题。
目前已知的是:
可以通过将
searchController.hidesNavigationBarDuringPresentation
设置为true
来避免(感谢Chris' comment)。如果您绝对必须将
searchController.hidesNavigationBarDuringPresentation
设置为false
,您可以手动删除违规标签,如 this answer.最后,been reported iOS 13.2 修复了该错误。
有关详细信息,请参阅 this question。
P.S。很难找到关于该错误的任何信息,因此我决定在一个答案中收集所有可用的线索,供所有面临相同问题的人使用。
此问题已通过 iOS 13.2
修复