使用 SearchController 推送 ViewController 在搜索栏下显示黑色矩形

Posted

技术标签:

【中文标题】使用 SearchController 推送 ViewController 在搜索栏下显示黑色矩形【英文标题】:Pushing ViewController with SearchController showing black rectangle under Search Bar 【发布时间】:2018-07-13 10:59:14 【问题描述】:

当我将另一个控制器推入堆栈时(当有一个搜索控制器时)我在搜索栏下方看到一个黑色块。我已将以下所有内容的背景颜色设置为白色;

搜索控制器 搜索栏 当前风投 下一个风投

返回堆栈时也会出现。

搜索控制器

func setUpSearchController() 
        searchController.delegate = self
        searchController.view.backgroundColor = .white
        searchController.searchBar.backgroundColor = .white
        searchController = UISearchController(searchResultsController: nil)
        searchController.hidesNavigationBarDuringPresentation = true
        searchController.dimsBackgroundDuringPresentation = true
        searchController.searchBar.sizeToFit()
        searchController.searchBar.backgroundColor = .white
        searchController.searchBar.barTintColor = .white
        searchController.searchBar.placeholder = "Search"
        searchController.searchBar.searchBarStyle = .minimal
        searchController.searchBar.tintColor = Colours.brandGreen
        definesPresentationContext = true
        if #available(ios 11.0, *) 
            navigationItem.searchController = searchController
            navigationItem.hidesSearchBarWhenScrolling = true
         else 
            messagesTableView.tableHeaderView = searchController.searchBar
        
    

是否选择了单元格

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) 
        let chatController = ChatController()
        let message = messages[indexPath.row]
        chatController.title = message
        self.navigationController?.pushViewController(chatController, animated: true)
    

一如既往地非常感谢任何帮助。

【问题讨论】:

【参考方案1】:

在这里找到答案: https://blog.kulman.sk/fixing-black-artifact-changing-large-tiles-mode/

代码

guard let navigationController = navigationController else  return 
navigationController.view.backgroundColor = .white

正如上面的链接所解释的,这不能全局设置,因此,需要在我将使用的每个 NC 上。

【讨论】:

以上是关于使用 SearchController 推送 ViewController 在搜索栏下显示黑色矩形的主要内容,如果未能解决你的问题,请参考以下文章

创建可重用的 SearchController

按对象数组过滤 searchController

使用 SearchController 后的 DidSelect 导致快速崩溃

使用 SearchController 搜索时使用标签栏出现黑屏

SearchController 不搜索自定义 UITableViewCells

除非我在搜索栏中点击,否则 SearchController 不会显示未过滤的结果