首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UISearchBar in UINavigationController

UISearchBar in UINavigationController
EN

Stack Overflow用户
提问于 2018-07-22 21:07:09
回答 1查看 1.6K关注 0票数 0

我想以编程的方式将一个UISearchBar放到UINavigationController中,而不是代替UINavBar标题,因为,我想要大标题显示。请参阅iOS上的文件应用程序。

这是我的.swift

class Search: UITableViewController, UISearchBarDelegate

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

func searchBar() {
    let searchController = UISearchController(searchResultsController: nil)
    navigationItem.searchController = searchController
    navigationItem.searchController?.searchBar.placeholder = "search".localized
    navigationItem.searchController?.dimsBackgroundDuringPresentation = false
    navigationItem.hidesSearchBarWhenScrolling = false
}

要点是:通过将nil更改为实际的searchResultsController,在将文本输入搜索栏之后,整个导航控制器(带有搜索条和类型化文本)将被searchResultsController视图所取代。在输入时没有搜索栏。

我正在努力使用iOS 11/12本地外观和感觉在应用程序和把搜索栏到TableViewController是一个没有办法。有人能帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-23 19:03:01

如果不需要不同的视图控制器来显示结果,那么只需使用(它不会使导航栏消失):

代码语言:javascript
复制
let searchController = UISearchController(searchResultsController: nil)
searchController.searchResultsUpdater = self

不要在此之后更改值。

大多数代码都很好,但是您需要实现UISearchResultsUpdating协议来检测更新(当用户在搜索栏中写入时),并使用一个表视图(在视图控制器中)来显示搜索结果。通过在函数:updateSearchResults(用于searchController:)中重新加载表视图中的数据,可以在搜索栏中使用文本过滤所需的数据。关于这个主题,你可以阅读这个好的教程来获得更多的信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51469253

复制
相关文章

相似问题

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