美文网首页
UISearchController使用

UISearchController使用

作者: 精神薇 | 来源:发表于2019-02-17 22:06 被阅读0次
@interface SearchViewController ()<UITableViewDelegate,UITableViewDataSource,UISearchControllerDelegate,UISearchResultsUpdating>
{
    NSMutableArray * searchList;
}
@end

@implementation SearchViewController
- (void)viewWillDisappear:(BOOL)animated{
    [super viewWillDisappear:animated];
    if(self.searchController.active){
        self.searchController.active = NO;
        [self.searchController.searchBar removeFromSuperview];
    }
}
- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor whiteColor];
    self.navigationController.navigationBar.hidden = NO;
    self.title = @"搜索";
    self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]initWithImage:[[UIImage imageNamed:@"navback"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]style:UIBarButtonItemStylePlain target:self action:@selector(popSelf)];
    
    //表格的创建
    
    self.tableView= [[UITableView alloc]initWithFrame:CGRectMake(0,NAVIGATION_BAR_HEIGHT,WIDTHV,HEIGHTV-NAVIGATION_BAR_HEIGHT-HOME_INDICATOR_HEIGHT)];
    
    self.tableView.delegate=self;
    
    self.tableView.dataSource=self;
    
    //UISearchController的创建
   self.searchController= [[UISearchController alloc]initWithSearchResultsController:nil];
    
    //设置代理
    
    self.searchController.delegate=self;
    //取消蒙版
    self.searchController.dimsBackgroundDuringPresentation = NO;
    self.searchController.searchResultsUpdater=self;
    
    self.searchController.searchBar.frame=CGRectMake(0,0,self.searchController.searchBar.frame.size.width,44.0);
    [self.searchController.searchBar setValue:@"取消" forKey:@"_cancelButtonText"];
    UITextField *searchField = [self.searchController.searchBar valueForKey:@"_searchField"];
    searchField.placeholder = @"搜索";
    //添加到searchBar到tableView的header
   self.tableView.tableHeaderView=self.searchController.searchBar;
    
    [self.view addSubview:self.tableView];
}

-(void)popSelf
{
    [self.navigationController popViewControllerAnimated:YES];
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    return searchList.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(nonnull NSIndexPath *)indexPath{
    static NSString *identity =@"cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identity];
    if(cell==nil){
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:identity];
    }
    cell.textLabel.text = searchList[indexPath.row];
    return cell;
}

- (void)updateSearchResultsForSearchController:(UISearchController *)searchController{
    NSString *searchstring = searchController.searchBar.text;
    if(searchList!=nil){
        [searchList removeAllObjects];
    }
//......
[self.tableView reloadData];
}
//searchcontroler 代理
- (void)didPresentSearchController:(UISearchController *)searchController
{
    NSLog(@"didPresentSearchController");
    self.tableView.frame =CGRectMake(0,0,WIDTHV,HEIGHTV-HOME_INDICATOR_HEIGHT);
}




@end

相关文章

网友评论

      本文标题:UISearchController使用

      本文链接:https://www.haomeiwen.com/subject/gwbneqtx.html