UISearchController 的 SearchBar 在激活时位于状态栏下方(ios 9.3,ios 8.4)

Posted

技术标签:

【中文标题】UISearchController 的 SearchBar 在激活时位于状态栏下方(ios 9.3,ios 8.4)【英文标题】:SearchBar of UISearchController is lying under statusbar when it actives( ios 9.3 ,ios 8.4) 【发布时间】:2016-12-22 12:38:50 【问题描述】:

let storyboard = UIStoryboard(name: "ProductSearch_iPhone", bundle: nil)
   let controller : RSearchResultController = storyboard.instantiateViewController(withIdentifier: "SResult") 
                                              as! RSearchResultController

    searchController                        = UISearchController(searchResultsController:controller)
    searchController.searchResultsUpdater   = controller
    searchController.dimsBackgroundDuringPresentation   = true
    controller.delegate                                 = self
    searchController.searchBar.delegate                 = controller
    self.present(searchController, animated: true, completion: nil)
    definesPresentationContext = true

我添加了 UISearchController,但没有像许多其他教程那样与 UITableview 集成。

【问题讨论】:

【参考方案1】:

我终于找到了解决方案。问题不是特定于设备的,ios 9 和 ios8 显示设计损坏,而在 ios10 中则很好。

definesPresentationContext = true 

上面的代码行是问题所在,它的意图是 searchbar 当我导航到某个地方并在 UISearchController 处于活动状态时返回时不应该出现。但是根据我的要求,当 UISearchController 处于活动状态时,我无法选择导航。

【讨论】:

以上是关于UISearchController 的 SearchBar 在激活时位于状态栏下方(ios 9.3,ios 8.4)的主要内容,如果未能解决你的问题,请参考以下文章

iOS UISearchController:等到 UISearchController 在取消搜索后被解除

UISearchController

UISearchController 与单元格布局混淆

UISearchController 没有响应

UISearchController 未显示

自定义 UISearchController 动画