UISearchContainerViewController是否适用于iOS

时间:2017-09-06 13:38:32

标签: ios uisearchcontroller

UISearchContainerViewController存在于tvOS和iOS上。

Apple提供了示例代码,展示如何在 tvOS 中使用它:它们配置UISearchController,将其交给UISearchContainerViewController,将其包装在UINavigationController中,并使其成为UITabBarController的一个。孩子。

但是我从来没有在 iOS 上看过UISearchContainerViewController的例子,我无法在那里工作。例如,我完全像Apple那样做,除了我将UISearchContainerViewController推送到导航堆栈,或者我将它包装在导航控制器中并呈现它,或者其他什么;并且没有搜索字段,所以整个事情都没用。

有没有人让UISearchContainerViewController在iOS上做任何有用的事情?

1 个答案:

答案 0 :(得分:4)

我一直在寻找同一个问题的答案。但是我的工作就是这样:

基础VC

    let vc = SearchContainerVC()
    let nav = UINavigationController(rootViewController: vc)
    self.present(nav, animated: true, completion: nil)

<强> SearchContainerVC

class SearchContainerVC: UISearchContainerViewController {

    init() {
        let searchResultsTableVC = SearchResultsTableViewController()
        let searchVC = UISearchController(searchResultsController: searchResultsTableVC)
        searchVC.searchBar.searchBarStyle = .minimal
        searchVC.searchBar.showsCancelButton = true
        searchVC.searchBar.delegate = searchResultsTableVC
        searchVC.searchResultsUpdater = searchResultsTableVC

        let searchBar = searchVC.searchBar
        searchBar.delegate = searchResultsTableVC
        searchBar.sizeToFit()
        searchBar.placeholder = "Search for something"

        searchVC.hidesNavigationBarDuringPresentation = false
        searchVC.dimsBackgroundDuringPresentation = true

        super.init(searchController: searchVC)

        navigationItem.titleView = searchBar
    }
}

<强> SearchResultsTableViewController

class SearchResultsTableViewController: UITableViewController {
    // I use a Table to show search items
}