项目回顾(ios搜索功能的实现)

本文主要介绍了如何在iOS应用中实现搜索功能。首先,通过创建一个总接口,并结合搜索框内容进行请求。使用UISearchController,包括非编辑状态的控制器和编辑时用于显示搜索结果的控制器。接着,展示了如何在后台线程获取数据,并更新搜索结果。最后,在展示数据的控制器中加载页面,完成搜索功能的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.iOS搜索功能的实现
1)搜索功能的实现比较简单,只需要一个总的接口,然后拿到搜索框内的内容拼接到接口后面,再去请求数据即可
搜索UISearchController需要两个控制器
如下图
这里写图片描述
这里写图片描述
第一个是没有编辑的时候需要一个控制器,第二个是在编辑的时候需要的一个控制器,用来展示搜索到的内容
代码如下:
//加载搜索到得页面
WZ_SearchView *resultTVC = [[WZ_SearchView alloc]init];
self.searchC = [[UISearchController alloc] initWithSearchResultsController:resultTVC];
self.searchC.searchResultsUpdater = resultTVC;
[self.searchC.searchBar sizeToFit];
self.tableView.tableHeaderView = self.searchC.searchBar;
2)把它搞定之后,就需要搞展示的数据了,还是在一个工具类里面
-(void)addText:(NSString *)text{
dispatch_async(dispatch_get_main_queue(), ^{
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

        NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:text,@"keywords",
                             @"1",@"page",
                             nil];
        //POST 请求数据

        [manager POST:@"http://baozouribao.com/api/v1/articles/search" parameters:dic success:^(NSURLSessionDataTask * _Nonnull task, id  _Nonnull responseObject) {
            //请求成功后

            // NSLog(@"%@",responseObject);
            // NSDictionary *dic = responseObject;

            NSDictionary *dictory = responseObject;
            //创建模型
            self.array = [[NSMutableArray alloc] initWithCapacity:10];


            for (NSDictionary *dics in [dictory objectForKey:@"articles"]) {

                WZ_searchModol *popMusic = [WZ_searchModol new];
                [popMusic setValuesForKeysWithDictionary:dics];
                [self.array addObject:popMusic];
             }
      dispatch_async(dispatch_get_main_queue(), ^{

        if (self.block) {
            self.block();
        }
    });

    } failure:^(NSURLSessionDataTask * _Nonnull task, NSError * _Nonnull error) {
        NSLog(@"错误%@",error);
    }];
 });

}
3)把数据拿到之后展示就特别简单了,只需要在第二控制器里加载页面就行了
这里写图片描述
这里写图片描述
4)运行看效果
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值