You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在UICollectionViewController导航栏嵌入UISearchController的技术咨询

我来帮你把这段嵌入UISearchController到UICollectionViewController导航栏的代码整理成规范的Markdown格式,方便你查看、分享或者调试:

核心代码实现

// 扩展实现UISearchResultsUpdating协议,处理搜索内容更新逻辑
extension SearchCollectionViewController: UISearchResultsUpdating {
    func updateSearchResults(for searchController: UISearchController) {
        // 将搜索栏文本传入自定义方法获取搜索结果
        getSearchResult(query: searchController.searchBar.text!)
    }
}

// 主控制器类,继承UICollectionViewController并遵循布局代理协议
class SearchCollectionViewController: UICollectionViewController, UICollectionViewDelegateFlowLayout {
    // 初始化搜索控制器,指定当前控制器作为搜索结果展示载体
    let searchController = UISearchController(searchResultsController: nil)
    
    // 这里可以补充类的其他成员变量、生命周期方法、UICollectionView代理实现等
    ...
}

额外配置提示(如果还未添加)

要让搜索栏正确嵌入导航栏并正常工作,建议在viewDidLoad中补充以下配置:

override func viewDidLoad() {
    super.viewDidLoad()
    
    // 绑定搜索结果更新代理
    searchController.searchResultsUpdater = self
    // 搜索时不模糊背景
    searchController.obscuresBackgroundDuringPresentation = false
    // 设置搜索栏占位文本
    searchController.searchBar.placeholder = "输入关键词搜索"
    // 将搜索栏嵌入导航栏
    navigationItem.searchController = searchController
    // 确保搜索控制器的展示上下文正确
    definesPresentationContext = true
}

内容的提问来源于stack exchange,提问作者Hadi Sharghi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:44:27