首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Swift中获取导航栏中的搜索栏

在Swift中获取导航栏中的搜索栏
EN

Stack Overflow用户
提问于 2014-11-04 01:57:11
回答 10查看 94.4K关注 0票数 64

所以我已经尝试了所有的方法,试图在Swift的导航栏中找到一个搜索栏。但遗憾的是我还没让它起作用,只是.

对于那些不知道我在说什么的人,我想做这样的事情

注意导航栏中的搜索栏。下面是我目前正在使用的

代码语言:javascript
运行
复制
self.searchDisplayController?.displaysSearchBarInNavigationBar = true

我在我的viewDidLoad中弹出了它,然后当我加载我收到的应用程序时,只是一个空的导航栏.)(有什么想法吗?

EN

Stack Overflow用户

发布于 2019-09-28 16:59:17

在2019年,您应该使用UISearchController。

代码语言:javascript
运行
复制
override func viewDidLoad() {
    super.viewDidLoad()

    let searchController = UISearchController(searchResultsController: nil)
    searchController.searchResultsUpdater = self.viewModel
    searchController.obscuresBackgroundDuringPresentation = false
    searchController.searchBar.placeholder = "Search artists"
    self.navigationItem.searchController = searchController
    self.definesPresentationContext = true
}

有些类应该符合UISearchResultsUpdating。我通常将它作为扩展添加到我的ViewModel中。

代码语言:javascript
运行
复制
extension ArtistSearchViewModel: UISearchResultsUpdating {

func updateSearchResults(for searchController: UISearchController) {
    print("Searching with: " + (searchController.searchBar.text ?? ""))
    let searchText = (searchController.searchBar.text ?? "")
    self.currentSearchText = searchText
    search()
    }
}

这会产生这样的东西:

票数 19
EN
查看全部 10 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26726520

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档