我要在导航栏中之后保持搜索栏永久,在显示详细信息视图之后。
使用UISearchController(searchResultsController: myController)
时可以吗?
此外,类似于Apple Music Search的功能也可以在iOS中使用。用户输入搜索词,在表格视图中填充建议,用户按下搜索建议,表格视图更改为集合视图(或其他表格视图),但搜索栏仍位于顶部的视图。
我正在将UISearchController
与自定义搜索结果控制器(表视图)一起使用。在根视图控制器中,
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
let storyboard = UIStoryboard(name: "Search", bundle: nil)
let searchResultsController = storyboard.instantiateViewController(withIdentifier: "searchResultsController") as! SearchResultsTableViewController
searchResultsController.navController = self.navigationController
let searchController = UISearchController(searchResultsController: searchResultsController )
// Setup the Search Controller
searchController.delegate = self
searchController.searchResultsUpdater = searchResultsController
searchController.obscuresBackgroundDuringPresentation = true
searchController.searchBar.placeholder = "Search for freebies"
navigationItem.searchController = searchController
definesPresentationContext = true
}
按下搜索建议后,我从表视图委托方法将另一个表视图(可能是集合视图)推到导航控制器上,
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let storyboard = UIStoryboard(name: "Search", bundle: nil)
let freebieListController = storyboard.instantiateViewController(withIdentifier: "freebieListController") as! FreebieListViewController
freebieListController.navigationItem.title = "Luna"
let navigation = self.navController
navigation?.pushViewController(freebieListController, animated: false)
}