iOS - 如何在没有UITableView的情况下将UISearchController.searchBar添加到控制器?

时间:2016-05-27 07:08:02

标签: ios objective-c uitableview uisearchcontroller

我已经查找了UISearchController的教程,所有这些都是以这种方式实现的:

├── MainTableViewController(UITableViewController*)
   ├── SearchController(UISearchController*)
   └── ResultTableViewController(UITableViewController*)

通过这种方式,SearchController.searchBar可以简单地通过

显示在视图的顶部

MainTableViewController.tableView.tableHeaderView = SearchController.searchBar;

如何将searchBar添加到控制器的顶部,而不是UITableViewController

2 个答案:

答案 0 :(得分:0)

在故事板中选择viewController并打开Utilities(右上角图标)并搜索UISearchBar。现在将UISearchBar拖到viewController中并设置框架/约束。并为你的viewController类添加搜索栏。

在viewController类的旁边设置搜索栏的委托

override func viewDidLoad()
{
  super.viewDidLoad()
  searchBar.delegate = self          
}

现在实施searchBar:textDidChange方法

func searchBar(searchBar: UISearchBar, textDidChange searchText: String)
{

}

答案 1 :(得分:0)

没有表格视图就可以正常工作。 UISearchDisplayController实例需要一个searchResultsDatasource和delegate,它们实际上是UITableView数据源和委托。

由于这些实现存在于UITableViews中,因此它们经常被重用作搜索控制器的实现,但情况并非如此。