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

这是我的.swift
class Search: UITableViewController, UISearchBarDelegate
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是一个没有办法。有人能帮我吗?
发布于 2018-07-23 19:03:01
如果不需要不同的视图控制器来显示结果,那么只需使用(它不会使导航栏消失):
let searchController = UISearchController(searchResultsController: nil)
searchController.searchResultsUpdater = self不要在此之后更改值。
大多数代码都很好,但是您需要实现UISearchResultsUpdating协议来检测更新(当用户在搜索栏中写入时),并使用一个表视图(在视图控制器中)来显示搜索结果。通过在函数:updateSearchResults(用于searchController:)中重新加载表视图中的数据,可以在搜索栏中使用文本过滤所需的数据。关于这个主题,你可以阅读这个好的教程来获得更多的信息。
https://stackoverflow.com/questions/51469253
复制相似问题