UISearchController中的SearchBar委托不起作用

时间:2017-07-15 12:33:56

标签: ios swift uisearchcontroller searchbar

我正在尝试向视图添加搜索栏,但我已经尝试了一千种方式而且搜索栏代理无效。

class SearchTableViewController: UITableViewController, UISearchBarDelegate{

override func viewDidLoad() {
    super.viewDidLoad()

    let searchController = UISearchController(searchResultsController: nil)
    searchController.dimsBackgroundDuringPresentation = true
    searchController.obscuresBackgroundDuringPresentation = true
    self.definesPresentationContext = true
    searchController.searchBar.delegate = self
    self.tableView.tableHeaderView = searchController.searchBar

    // Uncomment the following line to preserve selection between presentations
    // self.clearsSelectionOnViewWillAppear = false

    // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
    // self.navigationItem.rightBarButtonItem = self.editButtonItem()
}

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。

你遇到的问题是UITableViewController有一个很大的限制:它的主视图必须是占用整个屏幕空间的UITableView(除了顶部可能的导航栏,以及工具栏或底部的标签栏。)

如果你的屏幕只包含一个UITableView,那么使用它是有意义的。但是,由于您要添加搜索栏,因此必须使用UIViewController并向其添加UITableView。然后,您可以根据需要添加搜索栏。