隐藏状态栏时iPhone X的UISearchController问题

par*_*oid 5 iphone uinavigationcontroller uisearchcontroller ios11

我修改了苹果示例UISearchController项目,以通过将UISearchController嵌入到UINavigationController中来使其与iPhone X配合使用,如苹果建议的那样:

if (@available(iOS 11.0, *)) {
    self.navigationItem.searchController = self.searchController;
} else {
    self.tableView.tableHeaderView = self.searchController.searchBar;
}
Run Code Online (Sandbox Code Playgroud)

一切都按预期工作,但是当我删除项目的状态栏时,事情似乎坏了。当您点击搜索区域时,导航栏消失,甚至可以将搜索结果表向上滑动,如图所示。在应用中使用状态栏可以解决问题。

此处修改的项目:https : //www.dropbox.com/s/6fdtwm361cy8e98/TableSearchwithUISearchController.zip?dl=0

在此处输入图片说明

即使在其他隐藏状态栏的电话上,搜索字段也离顶部太近了:

在此处输入图片说明

我希望隐藏状态栏的行为和间距与显示的状态栏相同,有人知道问题出在哪里吗?

Nut*_*ing 0

虽然并不理想,但将该UISearchController属性设置hidesNavigationBarDuringPresentationfalse有助于提供不间断的用户体验。在这里找到了建议。