searchController 在单击搜索项时消失

Posted

技术标签:

【中文标题】searchController 在单击搜索项时消失【英文标题】:searchController disappearing when clicking on search item 【发布时间】:2017-10-31 22:10:46 【问题描述】:

您好,我有一个 searchController,它在单击新视图显示之前出现的搜索项之一时消失。我希望搜索控制器保持活动状态,因此当用户返回视图时,他们仍然会看到结果列表。目前我显示具有当前功能的搜索控制器。任何想法如何阻止它离开屏幕?提前谢谢你!

主视图控制器:

func searchButtonClicked()
self.searchController?.isActive = true
         self.searchController?.searchBar.becomeFirstResponder()
if let controller = self.searchController 
            present(controller, animated: true, completion: nil)
        


func searchItemClicked()
    self.searchController?.isActive = false
    //set up detail controller and push
    let vc : detailViewController =self.storyboard?.instantiateViewController(withIdentifier:"DetailViewController")
    self.navigationController?.pushViewController(vc, animated: true)


func setupSearch()
    self.searchController = UISearchController.init(searchResultsController: searchResultsCustomController)
            self.searchController?.obscuresBackgroundDuringPresentation = true
             self.searchController?.searchBar.delegate = self
             self.searchController?.searchBar.showsCancelButton = true
             self.searchController?.searchBar.placeholder = "Search for people or places"

编辑: 添加有关此错误的更多信息。导航栏有一个搜索按钮,用户单击该按钮进行搜索。从这里开始 searchController 并出现一个搜索栏。输入搜索凭据后,表格视图将显示结果。如果用户点击其中一个结果,表格视图和搜索栏就会消失,就像我按下了取消按钮一样,然后屏幕被推送到详细视图控制器。

【问题讨论】:

您介意添加正在发生的事情的视频/图片吗? 嗨@CaseyWest 很遗憾我无法添加此信息。但是,我添加了对所发生情况的描述。我希望这可以帮助您更好地理解我的问题。谢谢! 【参考方案1】:

对于遇到此问题的任何人,您只需在 viewdidload 函数中添加以下代码行:

self.definesPresentationContext = true

【讨论】:

以上是关于searchController 在单击搜索项时消失的主要内容,如果未能解决你的问题,请参考以下文章

单击列表视图项时从 SQLite 数据库中获取行 ID

单击时搜索栏正在更改位置

如何将 QTreeWidget 的子项设置为在单击其父项时自动选择并突出显示

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

Swift UISearchController tableview 搜索结果滚动不会在键盘上方移动到最后一行

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