我很难按照指示行事。我有一个UISearchBar在一个UIView。用户将在UISearchBar中输入搜索字符串,并单击搜索图标进行搜索。结果将显示在一个新窗口(UITableView)中。
我的搜索向我展示了如下:
UISearchDisplayController不能添加到UIView中,因为它不是从UIView继承的。可以使用UISearchBar在接口生成器中添加IBOutlet,然后以编程方式使用该UISearchBar创建UISearchDisplayController。 只需使用代码(假设视图控制器是vc):vc addSubview:mySearchDisplayController.searchBar;// Note,searchBar是视图,mySearchDisplayController只控制searchBar等等。
此外,这也是:
只需让视图控制器实现UISearchBarDelegate即可。在xib文件中,您所需要做的就是向视图中添加一个UISearchBar,并根据需要对其进行配置,为它创建一个出口(可选,但确实有助于显式),并将委托出口分配给视图控制器。然后,为了响应搜索栏事件,根据需要实现UISearchBarDelegate协议方法。例如:- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar { self handleSearch:searchBar;}
我就是不明白!我应该将mySearchController添加到UIView中吗?还是我的UISearchBar?将它添加到我的UIView中,什么都不会发生;将它添加到我的UISearchBar中会使应用程序更加完善。我连一个错误都没有-它只是挂起。
然后是第二部分:代表。我应该把代表放进我的UIView吗?还是在UISearchDisplayController?不知道该往哪个方向走,到目前为止什么也不起作用。请帮帮忙。
在这一点上,我真正想要的只是让handleSearch方法得到执行。提前谢谢您的帮助。
很困惑。
发布于 2013-09-27 09:25:48
其想法是在Interface中创建一个搜索栏作为出口,然后使用以下代码创建UISearchDisplayController:
self.searchDisplayController2 = [[UISearchDisplayController alloc] initWithSearchBar:self.searchBar contentsController:self];
self.searchDisplayController2.delegate = self;
self.searchDisplayController2.searchResultsDelegate = self;
self.searchDisplayController2.searchResultsDataSource = self;这段代码将在您的View中实现,比如在viewDidLoad中。您还必须在同一个VC中实现至少两个委托函数:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;https://stackoverflow.com/questions/13349439
复制相似问题