使用UISearchController(searchResultsController:myController)

时间:2018-12-15 18:07:27

标签: ios uisearchbar uisearchcontroller

enter image description here

问题

我要在导航栏中之后保持搜索栏永久,在显示详细信息视图之后。

使用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)
}

0 个答案:

没有答案