如何在故事板中引用UISearchController

5
我已添加一个搜索栏和搜索显示控制器(假设我在故事板中添加了这个,因为没有“SearchController”对象可以拖出来)。
我的问题是现在如何设置该SearchController的属性?self.searchController不起作用,而且Xcode说当我将UISearchBar添加到视图时会自动添加它。我错在哪里了?我需要访问它的原因是我想设置结果搜索表,就像这样:
UITableViewController *searchResultsController = [[UITableViewController alloc] initWithStyle:UITableViewStylePlain];
 searchResultsController.tableView.dataSource = self;
 searchResultsController.tableView.delegate = self;

 self.searchController = [[UISearchController alloc] initWithSearchResultsController:searchResultsController];

self.searchController.searchResultsUpdater = self;

我注意到这里的示例:https://github.com/dempseyatgithub/Sample-UISearchController。虽然说它使用了storyboards,但实际上并没有使用storyboards来添加UISearchController,而是通过分配、初始化和设置框架的代码来实现。

谢谢老板,如果您想把这作为答案,我很乐意接受。 - James
2个回答

19

重要提示:在iOS 8中,UISearchDisplayController已被弃用。(请注意,UISearchDisplayDelegate也已被弃用。)为了管理搜索栏的呈现和显示 iOS 8及以后版本中的搜索结果,请改为使用UISearchController。

正如官方文档所述,最好停止将旧式UISearchDisplayController添加到面向iOS 8.0+的应用程序中。但是看起来他们还没有从Xcode6.1的UI控制器库中删除旧的控制器。他们也没有添加新的UISearchController。让我们等待下一个补丁。

但是您仍然可以通过代码添加新的搜索控制器:

  _searchController=[[UISearchController alloc] initWithSearchResultsController:self];

@staxim 很抱歉听到这个消息。我已经好几个月没有接触 iOS 或 Xcode 了。我会在本周晚些时候进行一些调查。 - Rui Zheng
4
9个月后... UISearchController仍未在故事板视图中。(哭脸) - Jay Q.
3
11个月后呢?仍然没有任何进展。 - user1585121
3
一年半过去了,仍然毫无进展。 - Jerry Tang
两年多过去了,仍然一无所获。 - neevek
显示剩余5条评论

-5
当您将搜索栏和搜索 Display 控制器对象拖出到您的表视图上时,控制器上会自动添加一个名为 searchDisplayController 的 IBOutlet,而不是 searchController。它还会为您设置数据源和委托。

4
如下所述,UISearchDisplayController已被弃用,推荐使用UISearchController,但它在storyboards中不直接可用。 - Stefan Fisk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接