将搜索栏添加到 UIViewController 类
Posted
技术标签:
【中文标题】将搜索栏添加到 UIViewController 类【英文标题】:Add Search Bar to a UIViewController class 【发布时间】:2015-11-02 18:49:09 【问题描述】:我想在我现有的 UIViewController 类中添加一个搜索栏。我使用 ios 8+ 并且总是调试我的应用程序我会收到一条错误消息。
我做到了:
.h
@interface mainViewController : UIViewController <UITableViewDataSource, UITableViewDelegate, UISearchDisplayDelegate>
.m
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
if (tableView == self.searchDisplayController.searchResultsTableView)
return [searchResultArray count];
else
return [self.fullArray count];
-(void)filterContentForSearchText:(NSString *)searchText scope:(NSString *)scope
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF beginswith[c] %@", searchResultArray];
searchResultArray = [self.fullArray filteredArrayUsingPredicate:predicate];
-(BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString
[self filterContentForSearchText:searchString scope:[[self.searchDisplayController.searchBar scopeButtonTitles]objectAtIndex:[self.searchDisplayController.searchBar selectedScopeButtonIndex]]];
return YES;
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];
if (cell == nil)
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"];
if (tableView == self.searchDisplayController.searchResultsTableView)
cell.textLabel.text = [searchResultArray objectAtIndex:indexPath.row];
else
cell.textLabel.text = [self.fullArray objectAtIndex:indexPath.row];
但是代码会给我一个警告:
searchDisplayController is deprecated: first deprecated in iOS 8.0
我该如何解决这个问题?
【问题讨论】:
查看UISearchDisplayController
的文档。它会告诉你现在该做什么。
我发现了这个:developer.apple.com/library/ios/documentation/UIKit/Reference/… 但它并没有真正的帮助......
怎么没用?您是否至少阅读了这些文档的第一段?
【参考方案1】:
UISearchDisplayController
已弃用,建议改用UISearchController
。
查看UIKit Catalog,了解如何在您的应用程序中使用UISearchController
。
【讨论】:
以上是关于将搜索栏添加到 UIViewController 类的主要内容,如果未能解决你的问题,请参考以下文章
UISearchController 搜索栏在出现时向下移动
在部分uiviewcontroller,monotouch iphone中添加标签栏
将带有分页的 UIScrollView 添加到现有的 UIViewController
将 UIBarButtonItem 添加到 UIViewController 推送到 UINavigation 控制器